SPQuery 的Where 子句的用法
1、一个条件实例
<Where> <Eq> <FieldRef Name='Name'/> <Value Type='Text'>Mark</Value> </Eq> </Where>
2、两个条件实例
<Where> <Or> <Eq> <FieldRef Name='Name'/> <Value Type='Text'>Joe</Value> </Eq> <Eq> <FieldRef Name='Name'/> <Value Type='Text'>Linda</Value> </Eq> </Or> </Where>
3、三个条件实例
<Where> <Or> <Eq> <FieldRef Name='Name'/> <Value Type='Text'>Mark</Value> </Eq> <Or> <Eq> <FieldRef Name='Name'/> <Value Type='Text'>Joe</Value> </Eq> <Eq> <FieldRef Name='Name'/> <Value Type='Text'>Linda</Value> </Eq> </Or> </Or> </Where>
4、使用SPQuery来查询列表中item信息:
SPQuery query = new SPQuery(); query.ViewFields = @"<FieldRef Name='Title'/><FieldRef Name='Created'/>"; query.Query = @"<Where> <Neq> <FieldRef Name='Created' /> <Value Type='DateTime'> <Today /></Value> </Neq> </Where>"; SPList list = web.Lists["AnnouList"]; SPListItemCollection items = list.GetItems(query); foreach (SPListItem expiredItem in items) { Console.WriteLine(expiredItem["Title"]); Console.WriteLine(expiredItem["Created"]); }
ViewFields 表示你查询后要返回的字段
Query表示查询过滤的表达式,使用CAML语言
5、使用SPSiteDataQuery来查询列表中item信息:
SPSiteDataQuery query = new SPSiteDataQuery(); query.Lists = @"<Lists ServerTemplate='104' />"; query.ViewFields = @"<FieldRef Name='Title'/><FieldRef Name='Created'/>"; query.Webs = "<Webs Scope='SiteCollection' />"; string queryText =@"<Where> <Neq> <FieldRef Name='Created' /> <Value Type='DateTime'> <Today /></Value> </Neq> </Where>"; query.Query = queryText; DataTable table = web.GetSiteData(query); foreach (DataRow row in table.Rows) { Console.WriteLine(row["Title"].ToString() + row["Created"].ToString()); }
query.Lists = @"<Lists ServerTemplate='104' />";中104代表通知列表类型
query.Webs = "<Webs Scope='SiteCollection' />";为查询的范围。
CAML的基本格式是这样的:“<Where><operator><operand /><operand /></operator> </Where>”.
使用SPQuery返回的是SPListItemCollection,而SPSiteDataQuery可以从不同的列表或是整个网站集查,实际上是返回了一个ADO.NET DataTable对象。
下表是CAML查询的一些简单说明:
元素 |
说明 |
And |
并且 |
BeginsWith |
以某字符串开始的 |
Contains |
包含某字符串 |
Eq |
等于 |
FieldRef |
一个字段的引用 (在GroupBy 中使用) |
Geq |
大于等于 |
GroupBy |
分组 |
Gt |
大于 |
IsNotNull |
非空 |
IsNull |
空 |
Leq |
小于等于 |
Lt |
小于 |
Neq |
不等于 |
Now |
当前时间 |
Or |
或 |
OrderBy |
排序 |
Today |
今天的日期 |
TodayIso |
今天的日期(ISO格式) |
Where |
Where子句 |