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

连接数据库代码不解

private static SqlConnection connection;

        public static SqlConnection Connection
        {
            get
            {
                string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
                if (connection == null)
                {
                    connection = new SqlConnection(conStr);
                    connection.Open();
                }
                else if (connection.State == ConnectionState.Broken)
                {
                    int i = 1;
                    
                    connection.Close();
                    connection.Open();
                }
                else if (connection.State == ConnectionState.Closed)
                {
                    connection.Open();
                }
                return connection;
            }
        }


大家觉得这样的链接语句有问题吗。
我总是怀疑多用户访问时,出现并发连接数据库时,第二个用户很有可能把第一个用户的connection给关掉

------解决方案--------------------
那怎么会呢,connection是static变量,单实例,唯一出问题的是如果使用多线程,有没有做好同步的话,可能会引起冲突,可能两个线程访问的connection都是null,这样就会有问题了