/// <summary>
/// dapper通用分页方法
/// </summary>
/// <typeparam name="T">泛型集合实体类</typeparam>
/// <param name="conn">数据库连接池连接对象</param>
/// <param name="files">列</param>
/// <param name="tableName">表</param>
/// <param name="where">条件</param>
/// <param name="orderby">排序</param>
/// <param name="pageIndex">当前页</param>
/// <param name="pageSize">当前页显示条数</param>
/// <param name="total">结果集总数</param>
/// <returns></returns>
public static IEnumerable<T> GetPageList<T>(IDbConnection conn, string files, string tableName, string where, string orderby, int pageIndex, int pageSize, out int total)
{
int skip = ;
if (pageIndex > )
{
skip = (pageIndex - 1) * pageSize + 1;
}
StringBuilder sb = new StringBuilder();
sb.AppendFormat("SELECT COUNT(1) FROM {0} where {1};", tableName, where);
sb.AppendFormat(@"SELECT {0}
FROM(SELECT ROW_NUMBER() OVER(ORDER BY {3}) AS RowNum,{0}
FROM {1}
WHERE {2}
) AS result
WHERE RowNum >= {4} AND RowNum <= {5}
ORDER BY {3}", files, tableName, where, orderby, skip, pageIndex * pageSize);
using (var reader = conn.QueryMultiple(sb.ToString()))
{
total = reader.ReadFirst<int>();
return reader.Read<T>();
}
}

  PS:网上找方法费劲,把找好的记录在自己的博客是个好习惯。

最新文章

  1. MVC5中EF6 Code First启动慢及间隙变慢优化的实践经验(转)
  2. Facade设计模式
  3. 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机
  4. WPF:在ControlTemplate中使用TemplateBinding
  5. Qt QDebug等重定向到文件中
  6. &quot;The Application was unable to start correctly (0xc000007b). Click OK to close the application&quot;
  7. 10分钟学会JAVA注解(annotation)
  8. 怎样在VS2010-2017中使用LightningChart绘图控件?
  9. login&#160;shell&#160;和&#160;non-login&#160;shell&#160;的区别
  10. [机器学习笔记]奇异值分解SVD简介及其在推荐系统中的简单应用
  11. 2.git使用之git fetch和git push的区别
  12. 【转】个人总结-网络安全学习和CTF必不可少的一些网站
  13. sqlserver字符串合并(merge)方法汇总
  14. 解决Tomcat加载时报APR错的问题
  15. css之选择器的认识
  16. cocos2d-js中怎么删除一个精灵
  17. LightOJ - 1138 (二分+阶乘分解)
  18. 搭建Hadoop环境(二)
  19. mysql指定id默认第一
  20. HDU 4750 Count The Pairs (离线并查集)

热门文章

  1. 开始学Python 啦 ,持续不断总结中。。(转)快捷键的使用
  2. GoBelieve service部署问题整理
  3. Java 程序员必备的一些流程图
  4. Marketing Cloud demo环境和API使用方法说明
  5. 【Struts2】进阶
  6. linux 使用 rz 上传和 sz下载 命令
  7. 前端基础(四):BOM和DOM
  8. python函数大全
  9. shell脚本基础编写
  10. 寻找一组数中最大的K个数