日期:2014-05-17  浏览次数:20407 次

关于SQLHELPER.CS多线程问题
我做了一个网站,里面的SQLHELPER.CS是做成的静态函数基本都是用static修饰的(因为看了微软的SQLHELPER.CS里面都是做成静态函数)列如:
        private  static SqlConnection conn = null;                  //创建数据库连接对象
        private static SqlCommand cmd = null;                      //创建命令对象
        private static SqlDataReader sdr = null;                   //创建SQLDATAREADER对象

里面的变量都是STATIC,函数也都用了static修饰,列如:
        /// <summary>
        /// 打开数据库连接
        /// </summary>
        /// <returns></returns>
        private static SqlConnection GetConn()
        {
            string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
            conn = new SqlConnection(connStr);
            if (conn.State != ConnectionState.Open)
            {
                conn.Open();
            }
            return conn;
        }

        /// <summary>
        ///  执行不带参数的增删改SQL语句或存储过程
        /// </summary>
        /// <param name="cmdText">增删改SQL语句或存储过程</param>
        /// <param name="ct">命令类型</param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string cmdText, CommandType ct)
        {
            int res;
            using (cmd = new SqlCommand(cmdText, GetConn()))
            {
                cmd.CommandType = ct;
                res = cmd.ExecuteNonQuery();
            }
            return res;
        }
,我就想问
1:这个类里面的所有变量函数都用static修饰,是所有用户同时共享一个类的意思吗?
2:如果1的回答是共享一个SQLHELPER.CS类,那么多个用户同时访问数据库会照成static变量