dapper通用分页方法

     /// 
        /// dapper通用分页方法
        /// 
        /// 泛型集合实体类
        /// 数据库连接池连接对象
        /// 
        /// 
        /// 条件
        /// 排序
        /// 当前页
        /// 当前页显示条数
        /// 结果集总数
        /// 
        public static IEnumerable GetPageList(IDbConnection conn, string files, string tableName, string where, string orderby, int pageIndex, int pageSize, out int total)
        {
            int skip = 1;
            if (pageIndex > 0)
            {
                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();
            }
        }

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

转载于:https://www.cnblogs.com/sunshine-wy/p/11102913.html

你可能感兴趣的:(dapper通用分页方法)