Ejemplo n.º 1
0
        /// <summary>
        /// 通过存储过程“Common_GetList”,得到分页后的数据
        /// </summary>
        /// <param name="startRowIndexId">开始行索引</param>
        /// <param name="maxNumberRows">每页最大显示数量</param>
        /// <param name="SortColumn">排序字段名,只能指定一个字段</param>
        /// <param name="StrColumn">返回列名</param>
        /// <param name="Sorts">排序方式(DESC,ASC)</param>
        /// <param name="Filter">查询条件(例如: Name = 'name' and id=1 )</param>
        /// <param name="TableName">查询表名,可以指定联合查询的SQL语句(例如: Comment LEFT JOIN Users ON Comment.UserName = Users.UserName)</param>
        /// <param name="Total">输出参数:查询总数</param>
        /// <returns></returns>
        public virtual IList <ProductPriceEntity> GetList(int startRowIndexId, int maxNumberRows, string SortColumn, string StrColumn, string Sorts, string Filter, string TableName, out int Total)
        {
            IList <ProductPriceEntity> list = new List <ProductPriceEntity>();

            if (string.IsNullOrEmpty(SortColumn))
            {
                SortColumn = "ID";
            }
            if (string.IsNullOrEmpty(StrColumn))
            {
                StrColumn = "*";
            }
            if (string.IsNullOrEmpty(Sorts))
            {
                Sorts = "DESC";
            }
            if (string.IsNullOrEmpty(TableName))
            {
                TableName = "ProductPrice";
            }
            string       storedProcedureName = "Common_GetList";
            SqlParameter parmStartRows       = new SqlParameter("StartRows", startRowIndexId);
            SqlParameter parmPageSize        = new SqlParameter("PageSize", maxNumberRows);
            SqlParameter parmSortColumn      = new SqlParameter("SortColumn", SortColumn);
            SqlParameter parmStrColumn       = new SqlParameter("StrColumn", StrColumn);
            SqlParameter parmSorts           = new SqlParameter("Sorts", Sorts);
            SqlParameter parmTableName       = new SqlParameter("TableName", TableName);
            SqlParameter parmFilter          = new SqlParameter("Filter", Filter);
            SqlParameter parmTotal           = new SqlParameter("Total", SqlDbType.Int);

            parmTotal.Direction = ParameterDirection.Output;
            IDataParameter[] parameterArray = new IDataParameter[8];
            parameterArray[0] = parmStartRows;
            parameterArray[1] = parmPageSize;
            parameterArray[2] = parmSortColumn;
            parameterArray[3] = parmStrColumn;
            parameterArray[4] = parmSorts;
            parameterArray[5] = parmTableName;
            parameterArray[6] = parmFilter;
            parameterArray[7] = parmTotal;
            using (NullableDataReader reader = _DB.GetDataReaderByProc(storedProcedureName, parameterArray))
            {
                while (reader.Read())
                {
                    list.Add(GetEntityFromrdr(reader));
                }
            }
            Total = (int)parmTotal.Value;
            return(list);
        }