public virtual IDataReader GetDataReaderByPage(out int recordCount, int pageIndex = 0, int pageSize = 20, string sortExpression = null, string sortDire = null, string tableName = null, string conditional = null, IDbDataParameter[] dbParameters = null, string selectField = null)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                tableName = this.CurrentTableName;
            }
            if ((tableName.ToUpper().IndexOf("SELECT") < 0) && (this.DBProvider.CurrentDbType != CurrentDbType.MySql))
            {
                return(DbCommonLibary.GetDataReaderByPage(this.DBProvider, out recordCount, pageIndex, pageSize, sortExpression, sortDire, tableName, conditional, selectField));
            }
            string str = string.Empty;

            if (string.IsNullOrEmpty(tableName))
            {
                tableName = this.CurrentTableName;
            }
            string str2 = string.Empty;

            if (!string.IsNullOrEmpty(conditional))
            {
                str2 = string.Format(" WHERE {0} ", conditional);
            }
            str = tableName;
            if (tableName.ToUpper().IndexOf("SELECT") >= 0)
            {
                str = "(" + tableName + ") T ";
            }
            str = string.Format("SELECT COUNT(1) AS recordCount FROM {0} {1}", str, str2);
            object obj2 = this.DBProvider.ExecuteScalar(str, dbParameters);

            recordCount = obj2 != null?int.Parse(obj2.ToString()) : 0;

            return(DbCommonLibary.GetDataReaderByPage(this.DBProvider, recordCount, pageIndex, pageSize, tableName, dbParameters, sortExpression, sortDire));
        }
 public virtual IDataReader GetDataReaderByPage(out int recordCount, int pageIndex, int pageSize, string whereClause, IDbDataParameter[] dbParameters, string order)
 {
     recordCount = DbCommonLibary.GetCount(this.DBProvider, this.CurrentTableName, whereClause, dbParameters);
     return(DbCommonLibary.GetDataReaderByPage(this.DBProvider, this.CurrentTableName, this.SelectField, pageIndex, pageSize, whereClause, dbParameters, order));
 }