最后调用的CSharp代码可以是:

            int totalcount = dboperator.Customers.Count();       //总记录数
int pagesize = 100;//每页显示数

//错误写法
int pages = (int)Math.Round((double)totalcount / pagesize);//总页数 //正确写法:向上取整
int pages= (int)Math.Ceiling((double)totalcount / pagesize); for (int pageindex = 1; pageindex <= pages; pageindex++)
{
var customers = dboperator.Customers.OrderBy(c => c.ContactName)
.Skip((pageindex - 1) * pageSize)
.Take(pageSize); //...
} 加入总记录数为501,每页显示100,上面pages总页数为5。正确应该为6 修改:
//int pages = (int)Math.Round((double)totalcount / pagesize);
int pages = PageCount(totalcount, pagesize); /// <summary>
/// 返回分页的页数
/// </summary>
/// <param name="count">总条数</param>
/// <param name="pageye">每页显示多少条</param>
/// <returns>如果 结尾为0:则返回1</returns>
public static int PageCount(int count, int pageye)
{
int page = 0;
int sesepage = pageye;
if (count % sesepage == 0) { page = count / sesepage; }
else { page = (count / sesepage) + 1; }
if (page == 0) { page += 1; }
return page;
}

  

本文参考博客:http://www.cnblogs.com/wintersun/archive/2009/10/06/1578401.html

DataTable分页代码http://www.cnblogs.com/jyshi/archive/2011/08/09/2132758.html

1.Math.Ceiling() 

返回大于或等于指定的双精度浮点数的最小整数值。

例如:Math.Ceiling(32.6)=33; Math.Ceiling(32.0)=32;

2.Math.Floor() 

用法和ceiling相反,返回小于或等于指定的双精度浮点数的最小整数值。

例如: Math.Floor(32.6)=32;;Math.Floor(32.0)==32;

3.Math.Round()

取指定位数的小数。

例如: Math.Round(36.236,2)=36.24; Math.Round(36.232,2)=36.23;

4.Math.Log()

取指定数字在使用指定底时的对数。

例如: 一本16开的书,计算对开了几次。Math.Log(16,2)=4

Linq 对List<T>进行分页:

 int pageSize = 150;
int totalPageCount = 0;
totalPageCount = (gasBottlesList.Count() / pageSize + 1); for (int i = 1; i <= totalPageCount; i++)
{
string msg = string.Empty;
msg = "执行进度(" + i.ToString2() + "/" + totalPageCount.ToString2() + ")";
frmLoading.SetCaption(msg);
status = DataCenterService.Instance.ImportGasBottlesBySqlBulkCopy(gasBottlesList.Take(pageSize * i).Skip(pageSize * (i - 1)).ToArray());
frmLoading.SetCaption(msg + ",结果:" + (status == true ? "成功" : "失败"));
//System.Threading.Thread.Sleep(300);
Application.DoEvents();
}

  

Linq to Object实现分页获取数据的更多相关文章

  1. SQL Server 怎么在分页获取数据的同时获取到总记录数

    SQL Server 获取数据的总记录数,有两种方式: 1.先分页获取数据,然后再查询一遍数据库获取到总数量 2.使用count(1) over()获取总记录数量 SELECT * FROM ( SE ...

  2. redis分页获取数据

    php代码: 采用哈希类型存储数据,有序集合存储分页数据,进行倒序与正序的排序. $getGoodsInfo = M('goods_test')->select(); for($i=0;$i&l ...

  3. tp5 使用paginate分页获取数据对象之后 如何对对象进行数据添加

    tp5 使用paginate分页获取数据对象之后 如何对对象进行数据添加 大家都知道,在使用tp5的paginate获取分页数据之后,得到的是一个数据对象,但有时会碰到要对数据对象进行二次加工的情况, ...

  4. 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期

    腾讯云图片鉴黄集成到C#   官方文档:https://cloud.tencent.com/document/product/641/12422 请求官方API及签名的生成代码如下: public c ...

  5. 【Django+Element UI】使用一个接口文件,搞定分页获取数据,模糊查询后分页获取数据

    1:序列化获取数据的接口设计 1:分页获取序列化数据 2:是个能传参数的接口 class Society(APIView): def post(self, request): keywords = s ...

  6. NHibernte 4.0.3版本中,使用Queryover().Where().OrderBy().Skip().Take()方法分页获取数据失败

    问题代码如下: var result=repository.QueryOver<modal>() .Where(p=>p.Code==Code) .OrderBy(p=>p.I ...

  7. SQL分页获取数据

    SQL Server分页 select * from (') t Oracle分页 SELECT * FROM (' ORDER BY MaterialNM) t

  8. linq查询集合并分页展示数据

    private void Bind() { if (Request.QueryString["QuestionNo"] != null) { string QuestionNo = ...

  9. MVC 分页获取数据 及点选按钮

    @model PagedList<Lyxm.Entity.Suggestion>@using Webdiyer.WebControls.Mvc <div>    <ul ...

随机推荐

  1. who am i

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

  2. mysql-积累管理sql语句

    //连接数据库 mysql -h xxx -u root -p; //查看数据库 show databases //查看数据表 show tables //查看某数据表结构 desc xxx表 //修 ...

  3. js简版定时器

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  4. maya 写UI 用到的工具

    import os cmds.window() scrollLayout = cmds.scrollLayout(w=150) cmds.gridLayout( numberOfColumns=30, ...

  5. WPF 分页控件 WPF 多线程 BackgroundWorker

    WPF 分页控件 WPF 多线程 BackgroundWorker 大家好,好久没有发表一篇像样的博客了,最近的开发实在头疼,很多东西无从下口,需求没完没了,更要命的是公司的开发从来不走正规流程啊, ...

  6. Scroll view 备忘

    Stroyboard中使用ScrollView 当我们使用Storyboard开发项目时,如果要往控制器上拖入一个ScrollView并且添加约束设置滚动区域,是有特殊的规定的: 拖入一个scroll ...

  7. netsat -ano 查看已占用的端口以及tomcat出现端口被占或者启动失败问题

    A.在DOS命令下:输入netstat -ano——回车,可以查看已占用的端口,记下端口的PID,然后打开任务管理器,点查看,选择列,勾选PID确定,找到对应的PID,结束进程,如果结束不了或者结束后 ...

  8. 【技术贴】解决myeclipse SVN 提交代码 commit:remains in tree-c

    [技术贴]解决myeclipse SVN 提交代码 commit:remains in tree-conflict错误的解决办法 错误是:Aborting commit: xxxxx' remains ...

  9. mysql 服务意外停止1067错误解决办法小结

    今天在配置服务器时安装mysql5.5总是无法安装,查看日志错误提示为1067错误,下面来看我的解决办法 事件类型: 错误 事件来源: Service Control Manager 事件种类: 无  ...

  10. 14.6.3.5 Configuring InnoDB Buffer Pool Flushing

    14.6.3.5 Configuring InnoDB Buffer Pool Flushing InnoDB 执行某些任务在后台, 包括脏叶的刷新(那些已经发生改变的pages 但是没有写入到数据文 ...