Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以增量表示的CAML查询项_C#_Sharepoint_Asmx_Caml - Fatal编程技术网

C# 以增量表示的CAML查询项

C# 以增量表示的CAML查询项,c#,sharepoint,asmx,caml,C#,Sharepoint,Asmx,Caml,我目前有一个sharepoint2010列表,其中包含大约200000条记录 我想获取每条记录,调整它,对它进行按摩,并将其存储在SQL表中 到目前为止,我正在使用sharepoint 2010 web服务方法GetListItems,就像这样 System.Xml.XmlNode nodeListItems = client.GetListItems("guid", "", query, viewFields, RowNumber, queryOptions, null); 一次查询2000

我目前有一个sharepoint2010列表,其中包含大约200000条记录

我想获取每条记录,调整它,对它进行按摩,并将其存储在SQL表中

到目前为止,我正在使用sharepoint 2010 web服务方法
GetListItems
,就像这样

System.Xml.XmlNode nodeListItems = client.GetListItems("guid", "", query, viewFields, RowNumber, queryOptions, null);
一次查询200000条记录太多了。我怎样才能避开这件事?
GetListItems
方法采用CAML查询参数

是否有一种方法可以增量执行此操作,例如一次执行5000条记录?如何构造CAML查询来实现这一点


除非有人有更好的方法来完成这一切

是的,有,您可以对结果进行分页。第五个参数是页面大小,您可以通过
RowNumber
进行设置。如果需要大小为5000的页面,请将其设置为5000

有关访问后续页面的详细信息,请参见

GetListItems方法支持服务器端分页。XML数据 此方法返回的包含ListItemCollectionPositionNext rs:数据元素中的属性,该元素包含要 支持分页。此字符串包含排序中字段的数据 以及寻呼所需的其他项目。你应该考虑这个字符串 内部文件,不可修改;修改它可能会产生意外的结果 结果。下面的示例显示了此返回值的形式 当支持分页时

<rs:Data ListItemCollectionPositionNext=" 
Paged=TRUE&p_ID=100&View=
      %7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
      101" Count=1000 >
   <z:row ows_FirstName="Nancy" ows_LastName="Name" ….. />
   ...
</rs:Data>

...
要获取下一页数据,使用queryOption参数,如下所示 如下面的示例所示

<QueryOptions>
  <Paging ListItemCollectionPositionNext=" 
    Paged=TRUE&p_ID=100&View=
    %7bC68F4A6A%2d9AFD%2d406C%2dB624%2d2CF8D729901E%7d&PageFirstRow=
   101" />
</QueryOptions>

因此,您所需要做的就是从每个页面的结果集中获取该属性中的数据,并将其添加到查询中以获得下一个页面