/// <summary> /// 获取单个简单对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="helper">数据库操作辅助对象</param> /// <param name="condition">查询条件(可空)</param> /// <param name="fields">查询字段(可空)</param> /// <param name="param">查询参数(可空)</param> /// <returns></returns> public static T GetSimpleObject <T>(this SqlHelper helper, string condition, string[] fields, params SqlParameter[] param) { //获取表名称 Type targetType = typeof(T); T obj = Activator.CreateInstance <T>(); string tableName = (string)targetType.GetField("Tablename").GetValue(obj); if (!string.IsNullOrEmpty(condition)) { if (!condition.StartsWith("WHERE", StringComparison.CurrentCultureIgnoreCase)) { condition = "WHERE " + condition; } } //拼接SQL语句 string sql = string.Format("SELECT {0} FROM {1}(NOLOCK) {2}", GetFields(fields), tableName, condition); DataSet dataSet = helper.ExecuteFillDataSet(CommandType.Text, sql, param); //验证数据集 if (ValidationHelper.IsNotEmptyDataSet(dataSet)) { //返回指定类型数据 return(DataConvertHelper.ToObject <T>(dataSet.Tables[0].Rows[0])); } return(default(T)); }
/// <summary> /// 执行存储过程并获取第一行的数据转换为对象 /// </summary> /// <typeparam name="T">目标对象类型</typeparam> /// <param name="helper">数据库操作辅助类</param> /// <param name="procName">存储过程名称</param> /// <param name="param">数据库操作参数列表</param> /// <returns></returns> public static T RunProcForObject <T>(this SqlHelper helper, string procName, params SqlParameter[] param) { DataSet dataSet = RunProcForDataset(helper, procName, param); if (ValidationHelper.IsNotEmptyDataSet(dataSet)) { return(DataConvertHelper.ToObject <T>(dataSet.Tables[0].Rows[0])); } return(default(T)); }
/// <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 <T> GetMessageForObject <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 <T>(param[param.Count - 1].Value.ToString().ToInt32(), param[param.Count - 2].Value.ToString(), default(T))); } return(new Message <T>(param[param.Count - 1].Value.ToString().ToInt32(), param[param.Count - 2].Value.ToString(), DataConvertHelper.ToObject <T>(dataSet.Tables[0].Rows[0]))); }
/// <summary> /// 将数据行转换为指定类型的对象 /// </summary> /// <typeparam name="T">指定类型</typeparam> /// <param name="row">数据行</param> /// <param name="excludeProperties">需要排除的属性名称列表</param> /// <returns></returns> public static T ParseToObject <T>(this DataRow row, params string[] excludeProperties) { return(DataConvertHelper.ToObject <T>(row, excludeProperties)); }