数据量太大时,如何实现分页查询-CSOM
static List<ListItem> getEmployee() { string account = ConfigurationManager.AppSettings["account"]; string password = ConfigurationManager.AppSettings["password"]; string empUrl = ConfigurationManager.AppSettings["empUrl"]; using(ClientContext ctx=new ClientContext(empUrl)){ SecureString securepassWord = new SecureString(); foreach (char c in password.ToCharArray()) { securepassWord.AppendChar(c); } ctx.Credentials = new SharePointOnlineCredentials(account, securepassWord);//针对online的验证 List<ListItem> employeeItem = new List<ListItem>(); List employee = ctx.Web.Lists.GetByTitle("llistName"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = "<View>" //+ "<Query><Where>" //+ "<And>" //+ "<IsNotNull><FieldRef Name='column1'/></IsNotNull>" //+ "<And>" //+ "<Eq><FieldRef Name='column2'/><Value Type='Text'>A</Value></Eq>" //+ "<Eq><FieldRef Name='column3'/><Value Type='Text'>Y</Value></Eq>" //+ "</And>" //+ "</And>" //+ "</Where></Query>" + "<ViewFields>" + "<FieldRef Name='column1'/>" + "<FieldRef Name='column2'/>" + "<FieldRef Name='column3'/>" + "<FieldRef Name='column4'/>" + "<FieldRef Name='column5'/>" + "</ViewFields>" + "<RowLimit>5000</RowLimit>" +"</View>"; ListItemCollectionPosition position = null; do { camlQuery.ListItemCollectionPosition = position; ListItemCollection empColl = employee.GetItems(camlQuery); ctx.Load(empColl); ctx.Load(empColl, items => items.Include(item => item["column1"], item => item["column2"], item => item["column3"], item => item["column4"], item => item["column5"])); ctx.ExecuteQuery(); position = empColl.ListItemCollectionPosition; if (empColl.Count>0) employeeItem.AddRange(empColl.ToList()); } while (position != null); return employeeItem; } }
posted on 2019-02-20 11:02 赢在当下_Victor 阅读(812) 评论(0) 编辑 收藏 举报