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> | != |