我遇到了一个问题,如果我在 C# 中执行 CAML 查询,我的 ListItemCollection 将包含整个列表。这是一个片段
我擦洗过的代码也许你可以看到我做错了什么。
在调试时,我发现生成的 XML 正是我所期望的从文件读取的值。似乎有一个问题
实际上执行查询并加载结果。我在这里所做的步骤对我来说似乎不正确,我觉得我错过了一步。
using Microsoft.SharePoint.Client;
...
System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(user, password, domain);
ClientContext clientContext = new ClientContext(uri);
clientContext.Credentials = credentials;
List list = clientContext.Web.Lists.GetByTitle(listName);
//read line of input from file and save to string[]
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "<Query><Where><And><Eq><FieldRef Name=\"Entity\" /><Value Type=\"Text\">" + columns[2].Trim() + "</Value></Eq><And><Eq><FieldRef Name=\"Title\"/><Value Type=\"Text\">" + columns[0].Trim() + "</Value></Eq><Eq><FieldRef Name=\"Section\" /><Value Type=\"Text\">" + columns[1].Trim() + "</Value></Eq></And></And></Where></Query>";
ListItemCollection listItems = list.GetItems(camlQuery);
clientContext.Load(listItems);
clientContext.ExecuteQuery();
在 SharePoint CSOM 中,根元素为CamlQuery.ViewXml 属性 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.camlquery.viewxml.aspx is <View>
, 例如:
public CamlQuery CreateInventoryQuery(string searchSku)
{
var qry = new CamlQuery();
qry.ViewXml =
@"<View>
<Query>
<Where>
<BeginsWith>
<FieldRef Name='SKU' />
<Value Type='Text'>" + searchSku + @"</Value>
</BeginsWith>
</Where>
</Query>
</View>";
return qry;
}
参考
使用客户端对象模型 http://msdn.microsoft.com/en-us/library/ff798388.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)