crm2011fetchxml分页查询

using System;

using System.IO;

using System.Xml;

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Query;

using Microsoft.Xrm.Sdk.Messages;

public class FetchPagingWithCookieHelper

{

public void Retrieve(IOrganizationService service)

{

//单次查询的个数

int fetchCount = 15;

//第几页

int pageNumber = 1;

string pagingCookie = null;

int sumCount = 0;

string fetchXml = @"<fetch version=‘1.0‘ output-format=‘xml-platform‘ mapping=‘logical‘ distinct=‘false‘>

<entity name=‘new_supplyaccount‘>

<attribute name=‘new_supplyaccountid‘ />

<attribute name=‘new_name‘ />

<filter type=‘and‘>

<condition attribute=‘statecode‘ operator=‘eq‘ value=‘0‘ />

</filter>

</entity>

</fetch>";

while(true)

{

string xml = CreateXml(fetchXml, pagingCookie, pageNumber, fetchCount);

RetrieveMultipleRequest retrieveRequest = new RetrieveMultipleRequest();

retrieveRequest.Query = new FetchExpression(xml);

EntityCollection returnCollection = ((RetrieveMultipleResponse)service.Execute(retrieveRequest)).EntityCollection;

sumCount += returnCollection.Entities.Count;

foreach (var c in returnCollection.Entities)

{

DisplayEntity(c, "new_supplyaccount");

}

if (returnCollection.MoreRecords)

{

//如果还要更多记录,继续查询

pageNumber++;

}

else

{

//没有,则退出

break;

}

}

System.Console.WriteLine("sumCount: " + sumCount);

}

public string CreateXml(string xml, string cookie, int page, int count)

{

StringReader stringReader = new StringReader(xml);

XmlTextReader reader = new XmlTextReader(stringReader);

XmlDocument doc = new XmlDocument();

doc.Load(reader);

return CreateXml(doc, cookie, page, count);

}

public string CreateXml(XmlDocument doc, string cookie, int page, int count)

{

XmlAttributeCollection attrs = doc.DocumentElement.Attributes;

if (cookie != null)

{

XmlAttribute pagingAttr = doc.CreateAttribute("paging-cookie");

pagingAttr.Value = cookie;

attrs.Append(pagingAttr);

}

XmlAttribute pageAttr = doc.CreateAttribute("page");

pageAttr.Value = System.Convert.ToString(page);

attrs.Append(pageAttr);

XmlAttribute countAttr = doc.CreateAttribute("count");

countAttr.Value = System.Convert.ToString(count);

attrs.Append(countAttr);

System.Text.StringBuilder sb = new System.Text.StringBuilder(1024);

StringWriter stringWriter = new StringWriter(sb);

XmlTextWriter writer = new XmlTextWriter(stringWriter);

doc.WriteTo(writer);

writer.Close();

return sb.ToString();

}

private void DisplayEntity(Entity entity, string label)

{

System.Console.WriteLine("display" + label + "start_________________________________");

var keyArray = entity.Attributes.Keys;

foreach (string name in keyArray)

{

System.Console.WriteLine("attributeName: " + name + ",attributeValue: " + entity.Attributes[name]);

}

System.Console.WriteLine("display" + label + "end!_________________________________");

}

}

crm2011fetchxml分页查询

时间: 2024-10-30 05:16:55

crm2011fetchxml分页查询的相关文章

Oracle分页查询

一.利用rownum,无order by(最优方案) 如下例查询出来5003行数据,然后扔掉了前面5000行,返回后面的300行.经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然. SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM XXX t WHERE hire_date BETWEEN TO_DATE ('20060501', 'yyyymmdd') AND TO_DATE ('20060731',

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运

Linq高级查询与分页查询

Linq高级查询 以~开头: r=>r.Name.StartsWith("李"); 以~结尾: r=>r.Name.EndsWith("光"); 包含(模糊查询): r=>r.Name.Contains("四"); 数据总个数: Con.Goods.Count();||Con.Users.ToList().count; 最大值: Con.Goods.ToList().Max(r=>r.Price); 最小值: Con.Go

bos 第4 (区域excel批量导入、区域通用分页查询、分区的添加、分区多条件分页查询、分区导出excel)

BOS项目笔记 第4天 今天内容安排: 1.区域批量导入功能 jQuery OCUpload(一键上传插件).apache POI.pinyin4j 2.实现区域的分页查询 3.对分页代码重构 4.添加分区(combobox下拉框) 5.分区的组合条件分页查询 6.分区数据导出功能 1. 区域数据批量导入功能 1.1 一键上传插件使用 ajax不能做文件上传. 第一步:在jsp页面中引入插件的js文件 <script type="text/javascript" src=&quo

mybatis中分页查询

1 如果在查询方法中有多个参数,可以使用map对象将所有数据都存储进去.比如分页查询,需要用到两个参数,可以将这两个参数包装到map中. 例子:分页查询 dao层方法 public List<Student> getStudentPage(int pstart, int pnumber) throws Exception{ SqlSession sqlSession = MybatisUtil.getSqlSession(); Map<String,Integer> map = n

HBase多条件及分页查询的一些方法

HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一.它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯地依靠RowKey.也只有使用RowKey查询数据才能得到非常高

.net淘宝客基础api 分页查询

1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Linq; 5 using System.Web; 6 using Top.Api; 7 using Top.Api.Request; 8 using Top.Api.Response; 9 10 namespace MvcWebApp.DataBase 11 { 12 public class TaoD

php分页查询

分页查询通过引用page.class.php分页工具,就好写多了: 1.首先要有显示的内容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

分页查询

分页查询 分析图 分页javaBean 设计 public class PageBean<T> {    private int currntPage = 1; // 当前页, 默认显示第一页    private int pageCount = 2; // 查询返回的行数(每页显示的行数),默认每页显示3行    private int totalCount; // 总记录数    private int totalPage; // 总页数 = 总记录数/每页显示的行数(+1)    pri