コード例 #1
0
        /// <summary>
        /// 根据存储过程名称、字典类型的参数列表,查询数据库并返回指定T类型的集合;
        /// 注意:若T为开发者自定义class类型,则其公共属性或公共字段名称要与执行存储过程后返回的查询结果集中的列名保持一致
        /// </summary>
        /// <param name="proc">将要访问的数据库中的存储过程的名称</param>
        /// <param name="dic_pam">字典类型的参数集合dic_pam,key对应的是存储过程proc中所需的参数名称,value是参数对应的值</param>
        /// <returns>以T类型的List集合的方式返回查询结果集</returns>
        public static List <T> GetListByProc(string proc, Dictionary <string, object> dic_pam)
        {
            List <T> result = new List <T>();  //用于存储返回结果的list集合

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr();
            #endregion

            //如果dic_pam里没有参数,表示存储过程是无参数的,则直接调用ExecuteQuery方法
            if (dic_pam == null || dic_pam.Count == 0)
            {
                result = ExecuteQuery(connStr, proc, CommandType.StoredProcedure);
            }

            #region 将字典中的key和value分别转换为SqlParameter的参数名和值
            SqlParameter[] param = new SqlParameter[dic_pam.Count];
            int            index = 0;//指示SqlParameter数组中当前操作的索引值
            foreach (KeyValuePair <string, object> item in dic_pam)
            {
                param[index] = new SqlParameter(item.Key, item.Value);
                index       += 1;
            }
            #endregion

            //将存储过程以及上一步生成的SqlParameter[]作为参数调用ExecuteQuery方法,返回T类型集合
            result = ExecuteQuery(connStr, proc, CommandType.StoredProcedure, param);

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 根据存储过程名称、字典类型的参数列表,访问数据库并执行非查询操作,返回受影响行数
        /// </summary>
        /// <param name="proc">将要访问的数据库中的存储过程的名称</param>
        /// <param name="dic_pam">字典类型的参数集合dic_pam,key对应的是存储过程proc中所需的参数名称,value是参数对应的值</param>
        /// <returns>执行非查询操作后的受影响行数</returns>
        public static int GetRowCountByProc(string proc, Dictionary <string, object> dic_pam)
        {
            int rowCount = 0;

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr();
            #endregion


            //如果dic_pam里没有参数,表示存储过程是无参数的,则直接调用ExecuteQuery方法
            if (dic_pam == null || dic_pam.Count == 0)
            {
                rowCount = ExecuteNonQuery(connStr, proc, CommandType.StoredProcedure);
            }

            #region 将字典中的key和value分别转换为SqlParameter的参数名和值
            SqlParameter[] param = new SqlParameter[dic_pam.Count];
            int            index = 0;//指示SqlParameter数组中当前操作的索引值
            foreach (KeyValuePair <string, object> item in dic_pam)
            {
                param[index] = new SqlParameter(item.Key, item.Value);
                index       += 1;
            }
            #endregion


            //4、将存储过程、以及上一步生成的SqlParameter[]作为参数调用ExecuteNonQuery方法,返回受影响行数
            rowCount = ExecuteNonQuery(connStr, proc, CommandType.StoredProcedure, param);

            return(rowCount);
        }
コード例 #3
0
        /// <summary>
        /// 根据指定的数据库连接字符串、存储过程名称,访问数据库并执行非查询操作,返回受影响行数;
        /// </summary>
        /// <param name="connStrName">数据库连接字符串的Name属性</param>
        /// <param name="proc">将要访问的数据库中的存储过程的名称</param>
        /// <returns>执行非查询操作后的受影响行数</returns>
        public static int GetRowCountByProc(string connStrName, string proc)
        {
            int rowCount = 0;

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr(connStrName);
            #endregion

            //调用ExecuteNonQuery方法,返回受影响行数
            rowCount = ExecuteNonQuery(connStr, proc, CommandType.StoredProcedure);

            return(rowCount);
        }
コード例 #4
0
        /// <summary>
        /// 根据无参数的存储过程,查询数据库并返回指定T类型的集合。
        /// 注意:若T为开发者自定义class类型,则其公共属性或公共字段名称要与执行存储过程后返回的查询结果集中的列名保持一致
        /// </summary>
        /// <param name="proc">将要访问的数据库中的存储过程的名称</param>
        /// <returns>以T类型的List集合的方式返回查询结果集</returns>
        public static List <T> GetListByProc(string proc)
        {
            List <T> result = new List <T>();  //用于存储返回结果的list集合

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr();
            #endregion

            //调用ExecuteQuery方法,返回T类型集合
            result = ExecuteQuery(connStr, proc, CommandType.StoredProcedure);

            return(result);
        }
コード例 #5
0
        /// <summary>
        /// 根据指定的数据库连接字符串、sql语句,object类型List参数集合,访问数据库并执行非查询操作,返回受影响行数;
        /// 注意:sql语句中的参数名要与pam_obj集合中开发者自定义class类型对象中的公共属性或公共字段名称保持一致
        /// </summary>
        /// <param name="connStrName">数据库连接字符串的Name属性</param>
        /// <param name="sql">SQL语句(非查询命令;多语句情况下最后一句必须是非查询命令)</param>
        /// <param name="pam_obj">object类型List参数集合,集合中可以有开发者自定义class类型对象或系统定义的值类型</param>
        /// <returns>执行非查询操作后的受影响行数</returns>
        public static int GetRowCountBySql(string connStrName, string sql, List <object> pam_obj)
        {
            int rowCount = 0;

            //将参数的匹配与处理统一交给BaseMethod_ParamProcessed方法执行,方便以后的维护和管理
            SqlParameter[] param = BaseMethods.BaseMethod_ParamProcessed(sql, pam_obj);

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr(connStrName);
            #endregion

            //如果param里没有参数,表示sql语句是无参数的,则直接调用ExecuteQuery方法
            if (param.Length == 0)
            {
                rowCount = ExecuteNonQuery(connStrName, sql, CommandType.Sql);
            }

            //4、将sql语句、return_type、以及上一步生成的SqlParameter[]作为参数调用DAL_Methods方法,返回return_type类型集合
            rowCount = ExecuteNonQuery(connStrName, sql, CommandType.Sql, param);

            return(rowCount);
        }
コード例 #6
0
        /// <summary>
        /// 根据指定的数据库连接字符串、sql语句、object类型List参数集合,查询数据库并返回指定T类型的List集合;
        /// 注意1:sql语句中的参数名要与pam_obj集合中开发者自定义class类型对象中的公共属性或公共字段名称保持一致;
        /// 注意2:若T为开发者自定义class类型,则其公共属性或公共字段名称要与执行sql语句后返回的查询结果集中的列名保持一致
        /// </summary>
        /// <param name="connStrName">数据库连接字符串的Name属性</param>
        /// <param name="sql">SQL语句(查询命令;多语句情况下最后一句必须是查询命令)</param>
        /// <param name="pam_obj">object类型List参数集合,集合中可以有开发者自定义class类型对象或系统定义的值类型</param>
        /// <returns>以T类型的List集合的方式返回查询结果集</returns>
        public static List <T> GetListBySql(string connStrName, string sql, List <object> pam_obj)
        {
            List <T> result = new List <T>();  //用于存储返回结果的list集合

            //将参数的匹配与处理统一交给BaseMethod_ParamProcessed方法执行,方便以后的维护和管理
            SqlParameter[] param = BaseMethods.BaseMethod_ParamProcessed(sql, pam_obj);

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr(connStrName);
            #endregion

            //如果param里没有参数,表示sql语句是无参数的,则直接调用ExecuteQuery方法
            if (param.Length == 0)
            {
                result = ExecuteQuery(connStr, sql, CommandType.Sql);
            }

            //将sql语句、以及上一步生成的SqlParameter[]作为参数调用ExecuteQuery方法,返回T类型集合
            result = ExecuteQuery(connStr, sql, CommandType.Sql, param);

            return(result);
        }
コード例 #7
0
        /// <summary>
        /// 根据指定的数据库连接字符串、sql语句,访问数据库并执行非查询操作,返回受影响行数
        /// </summary>
        /// <param name="connStrName">数据库连接字符串的Name属性</param>
        /// <param name="sql">SQL语句(非查询命令;多语句情况下最后一句必须是非查询命令)</param>
        /// <returns>执行非查询操作后的受影响行数</returns>
        public static int GetRowCountBySql(string connStrName, string sql)
        {
            //1、找出sql语句中所有参数

            #region 第一步,找出sql语句中所有参数
            //定义正则表达式,用于匹配出sql语句中所有参数
            string          partten = @"[@](\w+)";
            MatchCollection mc      = Regex.Matches(sql, partten);
            #endregion

            //异常判断,如果sql语句中有参数
            if (mc.Count > 0)
            {
                throw new Exception(HelperVar.DLL_Name + "组件捕捉到的异常:sql语句中有参数!");
            }

            #region 获取数据库连接字符串
            string connStr = BaseMethods.GetConstr(connStrName);
            #endregion

            return(ExecuteNonQuery(connStr, sql, CommandType.Sql));
        }