Exemple #1
0
        /// <summary>
        /// 执行查询记录
        /// </summary>
        /// <returns></returns>
        public PageResult <T> ToPageList()
        {
            PageResult <T> result = new PageResult <T>();
            QueryFilter    filter = QueryFilterHelper.GetPageFilter(query, select, orderByClauseList, pager, unSelect);

            List <T>  list      = new List <T>();
            DbCommand dbCommand = null;

            try
            {
                if (!filter.IsPage)
                {
                    throw new Exception("分页查询未指定分页信息");
                }
                else
                {
                    dbCommand = dbContext.DbProvider.GetQueryRecordsPageDbCommand <T>(filter, subTableArg);
                }
                dbCommand.Connection = dbContext.GetDbConnection();
                DbDataReader dr = dbCommand.ExecuteReader();
                DataTable    dt = dbContext.ConvertDataReaderToDataTable(dr);

                list = dt.ToList <T>();

                int       totalCount           = 0;
                DbCommand getRecCountDbCommand = dbContext.DbProvider.GetCountDbCommand <T>(filter, subTableArg);
                getRecCountDbCommand.Connection = dbCommand.Connection;
                object valueObj = getRecCountDbCommand.ExecuteScalar();
                if (valueObj != null && valueObj != DBNull.Value)
                {
                    totalCount = Convert.ToInt32(valueObj);
                }
                //分页查询 获取记录总数
                result.Rows       = list;
                result.Total      = totalCount;
                filter.TotalCount = totalCount;
                dbContext.CloseDbConnection(dbCommand);
            }
            catch (Exception ex)
            {
                dbContext.CloseDbConnection(dbCommand);
                throw ex;
            }
            return(result);
        }