dapper通用分頁方法


     /// <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:網上找方法費勁,把找好的記錄在自己的博客是個好習慣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM