/// <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 = 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<T>(); } }
PS:網上找方法費勁,把找好的記錄在本身的博客是個好習慣。html