CAML查询结果总是捞出全部
CAML查询总是出不来正确结果
想要查询讨论区里主旨为aaa的项目,编写了以下的代码,却总是捞出全部的资料,请问各位先进是否CAML描述有误呢?还是有地方没注意到。
Thanks
代码如下:
System.Text.StringBuilder oSb = new System.Text.StringBuilder();
oSb.Append(" <Query>");
oSb.Append(" <Where>");
oSb.Append(" <Eq>");
oSb.Append(" <FieldRef Name=\"Title\" />");
oSb.Append(" <Value Type=\"Text\">aaa</Value>");
oSb.Append(" </Eq>");
oSb.Append(" </Where>");
oSb.Append(" </Query>");
SPSite site = new SPSite("http://test/sites/TestNewSite");
SPWeb testWeb = site.AllWebs[0];
SPList testList = testWeb.Lists[0];
SPQuery query = new SPQuery();
query.Query = oSb.ToString();
SPListItemCollection filteredItems = testList.GetItems(query);
foreach (SPListItem i in filteredItems)
{
listBox1.Items.Add(i.Title);
}
[解决办法]
这样
System.Text.StringBuilder oSb = new System.Text.StringBuilder(); //oSb.Append(" <Query>"); oSb.Append(" <Where>"); oSb.Append(" <Eq>"); oSb.Append(" <FieldRef Name=\"Title\" />"); oSb.Append(" <Value Type=\"Text\">aaa </Value>"); oSb.Append(" </Eq>"); oSb.Append(" </Where>"); //oSb.Append(" </Query>"); SPSite site = new SPSite("http://test/sites/TestNewSite"); SPWeb testWeb = site.AllWebs[0]; SPList testList = testWeb.Lists[0]; SPQuery query = new SPQuery(); query.Query = oSb.ToString(); SPListItemCollection filteredItems = testList.GetItems(query); foreach (SPListItem i in filteredItems) { listBox1.Items.Add(i.Title); }