Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
批量获取SharePoint列表c#CSOM_C#_Sharepoint_Csom - Fatal编程技术网

批量获取SharePoint列表c#CSOM

批量获取SharePoint列表c#CSOM,c#,sharepoint,csom,C#,Sharepoint,Csom,您能否帮助我使用CSOM获取SharePoint库(它是一个包含文档集的库)的项目。 该库有5000多个项目,我知道SharePoint有5000个项目的限制,所以我尝试将它们分为500个批次。可能吗 clientContext.Credentials = new SharePointOnlineCredentials(username, securePassword); List oList = clientContext.Web.Lists.GetByTitle(libraryName);

您能否帮助我使用CSOM获取SharePoint库(它是一个包含文档集的库)的项目。 该库有5000多个项目,我知道SharePoint有5000个项目的限制,所以我尝试将它们分为500个批次。可能吗

clientContext.Credentials = new SharePointOnlineCredentials(username, securePassword);
List oList = clientContext.Web.Lists.GetByTitle(libraryName);
clientContext.Load(oList);
clientContext.ExecuteQuery();
CamlQuery query = new CamlQuery();
query.ViewXml = "<View><RowLimit>500</RowLimit></View>";
ListItemCollection allDocumentSet = oList.GetItems(query);
clientContext.Load(allDocumentSet);
clientContext.ExecuteQuery();
clientContext.Credentials=新的SharePointOnlineCredentials(用户名、安全密码);
List-oList=clientContext.Web.Lists.GetByTitle(libraryName);
clientContext.Load(oList);
clientContext.ExecuteQuery();
CamlQuery query=新建CamlQuery();
query.ViewXml=“500”;
ListItemCollection allDocumentSet=oList.GetItems(查询);
加载(allDocumentSet);
clientContext.ExecuteQuery();
我不知道为什么不工作。我得到以下错误

Microsoft.SharePoint.Client.ServerException:“尝试的操作被禁止,因为它超出了管理员强制执行的列表视图阈值。”

如果我每批只收到500个项目,为什么会出现错误

另外,还有一个问题。什么时候应该使用“ExecuteQuery”和加载函数


谢谢

您需要运行ExecuteQuery从服务器检索/更新数据

下面是我的示例测试代码,用于检索超过5000个项目

 List lmsList = clientContext.Web.Lists.GetByTitle("LargeList");
                ListItemCollectionPosition itemPosition = null;
                while (true)
                {
                    CamlQuery camlQuery = new CamlQuery();
                    camlQuery.ListItemCollectionPosition = itemPosition;
                    camlQuery.ViewXml = @"<View><RowLimit>500</RowLimit></View>";

                    ListItemCollection listItems = lmsList.GetItems(camlQuery);
                    clientContext.Load(listItems);
                    clientContext.ExecuteQuery();

                    itemPosition = listItems.ListItemCollectionPosition;
                    Console.WriteLine(itemPosition);
                    //foreach (ListItem listItem in listItems)
                    //    Console.WriteLine("Item Title: {0}", listItem["Title"]);

                    if (itemPosition == null)
                        break;

                    Console.WriteLine(itemPosition.PagingInfo);                    
                }
List-lmsList=clientContext.Web.Lists.GetByTitle(“LargeList”);
ListItemCollectionPosition itemPosition=null;
while(true)
{
CamlQuery CamlQuery=新的CamlQuery();
camlQuery.ListItemCollectionPosition=itemPosition;
camlQuery.ViewXml=@“500”;
ListItemCollection listItems=lmsList.GetItems(camlQuery);
加载(listItems);
clientContext.ExecuteQuery();
itemPosition=listItems.ListItemCollectionPosition;
控制台写入线(itemPosition);
//foreach(listItems中的ListItem ListItem)
//WriteLine(“项标题:{0}”,listItem[“Title”]);
if(itemPosition==null)
打破
控制台写入线(itemPosition.PaginInfo);
}

我看不出我的代码有什么不同(除了循环接下来的500项之外)。我在XML的开头添加了@,但仍然是相同的响应。Microsoft.SharePoint.Client.ServerException:“尝试的操作被禁止,因为它超过了管理员强制执行的列表视图阈值。”在clientContext.ExecuteQuery()行中;SharePoint库是否需要索引?或者它需要任何必备条件?请尝试根据ID进行筛选,因为默认情况下ID是索引的@"0500";