我需要在简单的控制台应用程序(.net 4.5)中从SharePoint Online列表中提取数据
为此,我添加了对Microsoft.SharePoint.Client
和Microsoft.SharePoint.Client.Runtime
的引用
以下是我需要的......
ClientContext ctx = new ClientContext(siteUrl);
ctx.Credentials = new SharePointOnlineCredentials(siteUser, securePass);
Web site = ctx.Web;
ctx.Load(site);
List lst = site.Lists.GetByTitle("SomeList");
CamlQuery query = new CamlQuery();
query.ViewXml = @"<View>
<ViewFields>
<FieldRef Name='Title' />
</ViewFields>
</View>";
ListItemCollection items = lst.GetItems(query);
ctx.Load(items);
ctx.ExecuteQuery();
foreach (var item in items)
{
Console.WriteLine(item["Title"]);
}
我现在需要使用Query
和RowLimit
进行更复杂的查询。在这个更复杂的CamlQuery
中,RowLimit
似乎被忽略了。
<View>
<RowLimit>1000</RowLimit>
<ViewFields>
<FieldRef Name='Title' />
<FieldRef Name='ProductName' />
<FieldRef Name='GroupName' />
</ViewFields>
<Query>
<Where>
<Neq>
<FieldRef Name='GroupName' />
<Value Type='Lookup'></Value>
</Neq>
</Where>
</Query>
</View>
我无法让RowLimit工作。我遇到的所有示例都使用SPContext,它能够在SPQuery对象上设置RowLimit。
SPContext需要一个大的SharePoint dll才能工作,而ClientContext已经存在于Visual Studio中(使用2015)并且DLL的数量要小得多。
所以..
1。我什么时候应该使用SPContext?
2.有什么理由说RowLimit在上面的CamlQuery中不起作用吗?
编辑13/08 13:15
问题似乎不在于RowLimit,而在于查询本身。
<Neq>
<FieldRef Name='GroupName' />
<Value Type='Lookup'></Value>
</Neq>
这似乎不起作用......