Пример #1
0
        /// <summary>
        /// 获取分页数据(防注入功能的)
        /// 宋彪  2014-06-25 构造List<KeyValuePair<string, object>>比IDbDataParameter[]方便一些
        /// dbHelper.MakeParameters(dbParameters)--》IDbDataParameter[]
        /// </summary>
        /// <param name="recordCount">记录条数</param>
        /// <param name="dbHelper">dbHelper</param>
        /// <param name="tableName">数据来源表名</param>
        /// <param name="selectField">选择字段</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSize">每页显示多少条</param>
        /// <param name="conditions">查询条件</param>
        /// <param name="dbParameters">查询参数</param>
        /// <param name="orderBy">排序字段</param>
        /// <returns>数据表</returns>
        public static IDataReader ExecuteReaderByPage(IDbHelper dbHelper, out int recordCount, string tableName, string selectField, int pageIndex, int pageSize, string conditions, IDbDataParameter[] dbParameters, string orderBy)
        {
            IDataReader result = null;

            recordCount = 0;
            if (null != dbHelper)
            {
                recordCount = DbLogic.GetCount(dbHelper, tableName, conditions, dbParameters);
                result      = DbLogic.ExecuteReaderByPage(dbHelper, tableName, selectField, pageIndex, pageSize, conditions, dbParameters, orderBy);
            }
            return(result);
        }
 /// <summary>
 /// 分页读取数据
 /// </summary>
 /// <param name="recordCount">条数</param>
 /// <param name="pageIndex">当前页</param>
 /// <param name="pageSize">每页显示</param>
 /// <param name="sortExpression">排序字段</param>
 /// <param name="sortDire">排序顺序</param>
 /// <param name="tableName">表名</param>
 /// <param name="conditional">查询条件</param>
 /// <param name="dbParameters">数据参数</param>
 /// <param name="selectField">选择哪些字段</param>
 /// <returns>数据表</returns>
 public virtual IDataReader ExecuteReaderByPage(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 || DbHelper.CurrentDbType == DotNet.Utilities.CurrentDbType.MySql)
     {
         // 统计总条数
         string commandText = string.Empty;
         if (string.IsNullOrEmpty(tableName))
         {
             tableName = this.CurrentTableName;
         }
         string whereClause = string.Empty;
         if (!string.IsNullOrEmpty(conditional))
         {
             whereClause = string.Format(" WHERE {0} ", conditional);
         }
         commandText = tableName;
         if (tableName.ToUpper().IndexOf("SELECT") >= 0)
         {
             commandText = "(" + tableName + ") T ";
             // commandText = "(" + tableName + ") AS T ";
         }
         commandText = string.Format("SELECT COUNT(1) AS recordCount FROM {0} {1}", commandText, whereClause);
         object returnObject = DbHelper.ExecuteScalar(commandText, dbParameters);
         if (returnObject != null)
         {
             recordCount = int.Parse(returnObject.ToString());
         }
         else
         {
             recordCount = 0;
         }
         return(DbLogic.ExecuteReaderByPage(DbHelper, recordCount, pageIndex, pageSize, tableName, dbParameters, sortExpression, sortDire));
     }
     // 这个是调用存储过程的方法
     return(DbLogic.ExecuteReaderByPage(DbHelper, out recordCount, pageIndex, pageSize, sortExpression, sortDire, tableName, conditional, selectField));
 }
 /// <summary>
 /// 获取分页DataTable
 /// </summary>
 /// <param name="recordCount">记录总数</param>
 /// <param name="pageIndex">当前页数</param>
 /// <param name="pageSize">每页显示多少条</param>
 /// <param name="whereClause">条件</param>
 /// <param name="order">排序字段</param>
 /// <returns>数据表</returns>
 public virtual IDataReader ExecuteReaderByPage(out int recordCount, int pageIndex, int pageSize, string whereClause, IDbDataParameter[] dbParameters, string order)
 {
     recordCount = DbLogic.GetCount(DbHelper, this.CurrentTableName, whereClause, dbParameters, this.CurrentIndex);
     return(DbLogic.ExecuteReaderByPage(DbHelper, this.CurrentTableName, this.SelectFields, pageIndex, pageSize, whereClause, dbParameters, order, this.CurrentIndex));
 }