Пример #1
0
        /// <summary>
        /// 获取分页数据集合
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public static PagedList <T> GetPagerList <T>(this SqlHelper helper, string procName, PagerParameter parameter, params SqlParameter[] param)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException("分页参数不能为空");
            }

            List <SqlParameter> sqlParam = new List <SqlParameter>
            {
                new SqlParameter("@PageSize", parameter.PageSize),
                new SqlParameter("@PageIndex", parameter.PageIndex),
            };

            sqlParam = sqlParam.Concat(param).ToList();

            sqlParam.Add(ParameterHelper.NewOutParameter("PageCount", SqlDbType.Int));
            sqlParam.Add(ParameterHelper.NewOutParameter("RecordCount", SqlDbType.Int));
            sqlParam.BuildReturnParameter();

            IList <T> result = null;
            //去数据库
            DataSet dataSet = helper.ExecuteFillDataSet(CommandType.StoredProcedure, procName, sqlParam.ToArray <SqlParameter>());

            if (ValidationHelper.IsNotEmptyDataSet(dataSet))
            {
                result = DataConvertHelper.ToList <T>(dataSet.Tables[0], "PageView_RowNo");
            }

            int pageCount   = Convert.ToInt32(sqlParam[sqlParam.Count - 3].Value);
            int recordCount = Convert.ToInt32(sqlParam[sqlParam.Count - 2].Value);

            return(new PagedList <T>(parameter.PageIndex, parameter.PageSize, pageCount, recordCount, result));
        }
Пример #2
0
        /// <summary>
        /// 执行存储过程返回数据表对象并转换为集合
        /// </summary>
        /// <typeparam name="T">目标集合限定类型</typeparam>
        /// <param name="helper">数据库操作辅助类</param>
        /// <param name="procName">存储过程名称</param>
        /// <param name="param">数据库操作参数列表</param>
        /// <returns></returns>
        public static IList <T> RunProcForList <T>(this SqlHelper helper, string procName, params SqlParameter[] param)
        {
            DataSet dataSet = RunProcForDataset(helper, procName, param);

            if (ValidationHelper.IsNotEmptyDataSet(dataSet))
            {
                return(DataConvertHelper.ToList <T>(dataSet.Tables[0]));
            }

            return(null);
        }
Пример #3
0
        /// <summary>
        /// 查询简单集合对象
        /// </summary>
        /// <typeparam name="T">集合对象限定类型</typeparam>
        /// <param name="helper">数据库操作辅助对象</param>
        /// <param name="condition">查询条件(可空)</param>
        /// <param name="orderBy">查询排序条件</param>
        /// <param name="fields">查询字段(可空)</param>
        /// <param name="top">限制返回行数(默认为0,即代表不限制)</param>
        /// <param name="param">查询参数(可空)</param>
        /// <returns></returns>
        public static IList <T> GetSimpleList <T>(this SqlHelper helper, string condition, string orderBy = null, string[] fields = null, int top = 0, params SqlParameter[] param)
        {
            //获取表名称
            Type   targetType = typeof(T);
            T      obj        = Activator.CreateInstance <T>();
            string tableName  = (string)targetType.GetField("Tablename").GetValue(obj);

            string sql = "SELECT ";

            //判断并追加限制行数
            if (top > 0)
            {
                sql += string.Format("TOP {0} ", top);
            }

            sql += string.Format("{0} FROM {1}(NOLOCK)", GetFields(fields), tableName);

            //判断并追加条件
            if (!string.IsNullOrEmpty(condition))
            {
                sql += string.Format(" {0} {1} ", !condition.Trim().StartsWith("WHERE", StringComparison.CurrentCultureIgnoreCase) ? "WHERE" : string.Empty, condition);
            }

            //判断并追加排序
            if (!string.IsNullOrEmpty(orderBy))
            {
                sql += string.Format(" {0} {1} ", !orderBy.Trim().StartsWith("ORDER BY", StringComparison.CurrentCultureIgnoreCase) ? "ORDER BY" : string.Empty, orderBy);
            }

            DataSet dataSet = helper.ExecuteFillDataSet(CommandType.Text, sql, param);

            if (ValidationHelper.IsNotEmptyDataSet(dataSet))
            {
                return(DataConvertHelper.ToList <T>(dataSet.Tables[0]));
            }

            return(null);
        }
Пример #4
0
        /// <summary>
        /// 获取消息对象并携带集合对象
        /// </summary>
        /// <typeparam name="T">目标实体类型</typeparam>
        /// <param name="helper">数据库操作辅助类对象</param>
        /// <param name="procName">存储过程名称</param>
        /// <param name="param">存储过程参数</param>
        /// <param name="includeError">是否包括错误返回值</param>
        /// <returns></returns>
        public static IMessage <IList <T> > GetMessageForList <T>(this SqlHelper helper, string procName, IList <SqlParameter> param, bool includeError = true)
        {
            if (includeError)
            {
                param.BuildErrorParameter();
            }
            param.BuildReturnParameter();
            DataSet dataSet = helper.ExecuteFillDataSet(CommandType.StoredProcedure, procName, param.ToArray <SqlParameter>());

            if (!ValidationHelper.IsNotEmptyDataSet(dataSet))
            {
                return(new Message <IList <T> >(param[param.Count - 1].Value.ToString().ToInt32(), param[param.Count - 2].Value.ToString(), default(IList <T>)));
            }

            return(new Message <IList <T> >(param[param.Count - 1].Value.ToString().ToInt32(), param[param.Count - 2].Value.ToString(), DataConvertHelper.ToList <T>(dataSet.Tables[0])));
        }
Пример #5
0
 /// <summary>
 /// 将数据表转换为指定类型的对象集合
 /// </summary>
 /// <typeparam name="T">指定类型</typeparam>
 /// <param name="table">数据表</param>
 /// <param name="excludeProperties">需要排除的属性名称列表</param>
 /// <returns></returns>
 public static IList <T> ParseToList <T>(this DataTable table, params string[] excludeProperties)
 {
     return(DataConvertHelper.ToList <T>(table, excludeProperties));
 }