/// <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)); }
/// <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); }
/// <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); }
/// <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]))); }
/// <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)); }