比如在一个页面打开时,关闭以前页面没有关闭的连接,或者在程序出错时,关闭所有打开的连接?

解决方案 »

  1.   

    将你打开的连接放到集合中去,再把集合放到Session中.如果发现错误将集合取出然后断掉.
    但这是不建议的方法!!
    web程序建议是获取或完成了你的数据操作就立即关闭连接.
    但实际上Ado.net 中的数据库Connection对象是隐式管理了连接池.当你调用连接的close方法时,实际上Ado.net并没有关闭连接,只是将连接放会到池中,实际上连接仍然同数据库保持连接的.你可以试这调用open方法,然后再调用close方法,然后到数据库管理端看看会话情况就明白了.所以Ado.net频繁的调用连接的open和close方法是不会占用多少资源的.
    你也可以通过连接串的设置不使用隐式的连接池.
    要注意的是在程序中决定不同的连接池是通过连接串的哈西值来决定的!
      

  2.   

    重载: Dispose方法
    在里面实现,当页面对象失效时,关闭所有的连接private override Dispose()
    {
        if(this.Conn.State== Open)  //这里具体忘记怎么写了,就是判断当前连接是否已经打开
         {
             this.Conn.Close();    
         }
    }