Linq to Object实现分页获取数据
2013-12-16 15:10
495 查看
最后调用的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()
[b]取指定位数的小数。[/b]
例如: 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(); }
相关文章推荐
- linqtosql 实现数据分页
- DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载
- Linq to XML 排序,分页,多节点查询数据
- LINQ to DataSet实现复杂数据查询【下】
- mui上拉加载通过ajax获取数据,实现分页
- Linq to sql实现简单查询和分页
- LINQ to DataSet实现复杂数据查询
- 关于使用HandlerThread获取数据,并实现sqlite分页。
- Codeigniter框架实现获取分页数据和总条数的方法
- LINQ to DataSet实现复杂数据查询
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
- 在winforms中使用LINQ to SQL实现高效分页
- ExtJS中从WebService获取数据保存到本地,填充GridPanel实现静态数据分页
- LINQ to DataSet实现复杂数据查询
- 简单的实现分页获取数据的sql语句
- MVC中使用Linq To Sql进行数据查询及分页
- thinkphp实现根据页码从数据中获取数据,并实现分页
- IronPython and LINQ to Objects (IV): 实现IEnumerable<Object>
- Linq to xml实现xml数据增删改查
- 如何构建和使用EF,用linqToSql实现对数据的操作