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子句

原文地址:https://www.cnblogs.com/masahiro/p/10129194.html