SPQuery 查询知多少

string beginTime = txtFormDate.Text.Trim();//开始时间(用户选择)--查询条件
string endTime = txtToDate.Text.Trim();//结束时间(用户选择)--查询条件
string prodNum = txtProdNum.Text.Trim();//商品编码(用户填写)--查询条件
string shopName = txtShopName.Text.Trim();//门店名称(用户填写)--查询条件
string queryStr = string.Empty;
query
= new SPQuery();
if (beginTime.Length > 0 && endTime.Length > 0)
{
queryStr
+= string.Format(@"<And><Geq><FieldRef Name='SubmitDate'/><Value Type='DateTime'>{0}</Value></Geq>
<Leq><FieldRef Name='SubmitDate'/><Value Type='DateTime' >{1}</Value></Leq></And>
", beginTime, endTime);
}
if (beginTime.Length > 0 && endTime.Length <= 0)
{
queryStr
+= string.Format("<Geq><FieldRef Name='SubmitDate'/><Value Type='DateTime' >{0}</Value></Geq>", beginTime);
}
if (beginTime.Length <= 0 && endTime.Length > 0)
{
queryStr
+= string.Format("<Leq><FieldRef Name='SubmitDate'/><Value Type='DateTime' >{0}</Value></Leq>",endTime);
}
if (prodNum.Length > 0)
{
queryStr
+= string.Format("<Eq><FieldRef Name='ProdNum'/><Value Type='Text'>{0}</Value></Eq>", prodNum);
}
if (shopName.Length > 0)
{
queryStr
+= string.Format("<Eq><FieldRef Name='ShopName'/><Value Type='Text'>{0}</Value></Eq>", shopName);
}
query.Query
= string.Format("<Where>{0}</Where>", queryStr);

SPQuery查询语句是以XML格式展现出来的,如下面的例子

<Query>
  
<OrderBy>
    
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
  
</OrderBy>
  
<Where>
    
<Or>
      
<Neq>
        
<FieldRef Name="Status"></FieldRef>  //字段名
        
<Value Type="Text">Completed</Value> //字段值
      
</Neq>
      
<IsNull>
        
<FieldRef Name="Status"></FieldRef>
      
</IsNull>
    
</Or>
  
</Where>
</Query>

现在我用大家熟悉的SQL语法来和它做个比较

SPQuery SQL
<Where></Where> Where
<OrderBy></OrderBy> Order By
<And></And> And
<Or></Or> Or
<Eq></Eq>    =
<Geq></Geq> >=
<Gt></Gt> >
<Leq></Leq> <=
<Lt></Lt> <
<Neq></Neq> !=


原文地址:https://www.cnblogs.com/ahghy/p/2076657.html