/// <summary> /// 单表分页数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="queryColumns">要查询字段</param> /// <param name="sortColumn">排序字段</param> /// <param name="sortType">排序方式</param> /// <param name="pageSize">每页条数</param> /// <param name="pageIndex">第几页</param> /// <param name="whereSql">过滤条件Sql</param> /// <param name="whereParam">过滤条件字段名及字段值参数,例:new {Uname="joyet",Age = 110}</param> /// <returns></returns> public virtual PageResultEntity QueryPageList <T>(string queryColumns, string sortColumn, string sortType, int pageSize, int pageIndex, string whereSql, object whereParam) { PageResultEntity result = new PageResultEntity(); if (pageSize <= 0 || pageIndex <= 0) { return(result); } result.PageSize = pageSize; result.CurrentPageIndex = pageIndex; #region 为了分页查询效率,查询第一页时才会查询所有条数 if (result.CurrentPageIndex == 1) { var totalPageDbEntity = DbBuilder.QueryTotalPageCount <T>(whereSql, whereParam); if (totalPageDbEntity == null) { return(result); } var objTotalCount = DbHelper.ExecuteScalar(totalPageDbEntity.CommandText, totalPageDbEntity.DbParams); if (objTotalCount == null) { return(result); } result.TotalCount = Convert.ToInt64(objTotalCount); if (result.TotalCount <= 0) { return(result); } } #endregion var dbEntity = DbBuilder.QueryPageList <T>(queryColumns, sortColumn, sortType, pageSize, pageIndex, whereSql, whereParam); if (dbEntity == null) { return(result); } using (var reader = DbHelper.ExecuteReader(dbEntity.CommandText, dbEntity.DbParams)) { var datas = DataReaderToEntityList <T>(reader); result.Data = datas; result = SetPageListResult <T>(result); } HandelExecuteDbCallBack(dbEntity.CommandText, dbEntity.DbParams); return(result); }