Esempio n. 1
0
        public override IDataReader GetByPage(object tableName, string fieldList, FilterObject[] filterObjects, OrderObject[] orderObjects, int pageNum, int pageSize, ref int pageCount, ref int totalRowCount)
        {
            string filter = PagingHelper.CreateSafeFilter(filterObjects);

            try
            {
                totalRowCount = (int)SqlHelper.ExecuteScalar(_connectionString, StoredProcedureName.TotalRowCount, tableName, filter);
            }
            catch
            {
                totalRowCount = 0;
            }
            if (totalRowCount == 0)
            {
                pageCount = 0;
                return(null);
            }
            if (pageSize <= 0 || totalRowCount <= pageSize)
            {
                pageCount = 1;
            }
            else
            {
                pageCount = (totalRowCount + pageSize - 1) / pageSize;
            }
            if (pageNum < 1 || pageNum > pageCount)
            {
                return(null);
            }
            return(SqlHelper.ExecuteReader(_connectionString, StoredProcedureName.GetByPage, tableName, fieldList, filter,
                                           PagingHelper.CreateOrder(orderObjects), pageNum, pageSize, pageCount));
        }