日期:2014-05-18  浏览次数:20409 次

全局共享一个SqlConnect的问题

  public   static   SqlConnection   _conn;  

                public   static   SqlConnection   GetConnection  
                {
                        get
                        {
                                if   (_conn   ==   null)
                                {
                                        _conn   =   new   SqlConnection(strconn);
                                        _conn.Open();
                                        _conn.Close();
                                }
                                return   conn0;
                        }
                }


在并发访问的时候会出问题吗?

------解决方案--------------------
不要这个样子吧
------解决方案--------------------
Application.Lock
------解决方案--------------------
我觉得会。如果一个是普通对象不会有问题,但如果是占重要资源的就会。
它不只是一个服务器内容的问题了
------解决方案--------------------
连接池会自动管理你的连接。

不需要做成全局的。
------解决方案--------------------
连接在需要的时候打开,用完立马关闭
------解决方案--------------------
连接在需要的时候打开,用完立马关闭

顶这句.
------解决方案--------------------
只写一个连接,就可以,ado.net数据库连接池会自动处理的,详细资料看看ado.net

嗯 送他一朵小花花
------解决方案--------------------
没必要做成全局的吧。在WEB.CONFIG里面设置好连接字符串,要用的时候调用就可以了。
------解决方案--------------------
你可以看看SqlHelper,里面有关于全局类的定义。接口也很清晰。
------解决方案--------------------
如果为了连接在需要的时候打开,用完立马关闭,怎么不用using调用啊,这样写多此一举,


------解决方案--------------------
CONNECTION本来就是很耗费资源和影响数据库性能的
这样一来就阻塞了一个连接
不可取
------解决方案--------------------
这个一般情况下直接new出来用就行了,只不过记得用完后close,.net后台已经用了连接池管理.
------解决方案--------------------
我打个比方吧,有10个厕所可以用,每个人用完了尽快出来给别人用就可以了。你这样不等于上完厕所洗手的时候也不让别人进来吗