VueWebCoreApi/Tools/DapperHelper.cs
@@ -214,6 +214,42 @@
            }
        }
        public static List<T> GetPageListData<T>(string sql, Object parm, string orderBy, string sort, int pageIndex, int pageSize, out int total)
        {
            List<T> list = null;
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("SELECT COUNT(1) FROM ({0}) AS Result;", sql);
            sb.AppendFormat(@"SELECT *
                        FROM(SELECT *,ROW_NUMBER() OVER(ORDER BY {1} {2}) AS rowNum
                             FROM  ({0}) AS Temp) AS Result
                        WHERE  rowNum >= {3} AND rowNum <= {4}
                        ORDER BY {1} {2}", sql, orderBy, sort, pageIndex, pageSize);  //skip, pageIndex * pageSize
            using (IDbConnection conn = sqlConnection())
            {
                try
                {
                    using (var reader = conn.QueryMultiple(sb.ToString(), parm))
                    {
                        total = reader.ReadFirst<int>();
                        list = reader.Read<T>().ToList();
                    }
                }
                catch (Exception ex)
                {
                    //创建日志记录组件实例
                    LogHelper.WriteLog(ex);
                    throw ex;
                }
                finally
                {
                    conn.Dispose();
                    conn.Close();
                }
            }
            return list;
        }
        /// <summary>
        /// dapper通用分页函数