| | |
| | | |
| | | } |
| | | } |
| | | 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通用分页函数 |