Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
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 <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])));
        }
Exemplo n.º 4
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));
 }