请问ASP.NET连接SQLSERVER(Close之后)...连接数不减少如何办?不可能叫我重启服务器吧~
难道SQLSERVER自动释放?

解决方案 »

  1.   

    close后就关掉了,贴你的数据库操作的代码出来,包括开始建立对象,连接到后来的关闭释放资源等。
      

  2.   

    我懂他的意思,他的意思是说,Connection对象已经Close了,可是看SQLSERVER里面的进程,连接并没有中断.这个虽然进程有连接应该没有关系吧,我也讲不清楚.
      

  3.   

    SqlConnection只要调用Close或Dispose都可以释放资源的。
    至于Close后在SQLSERVER中的数据库连接是不会马上关闭的,需要一段时间,所以你看到连接数并没有减少,不过这没有什么关系的,因为就算你再Open,只要SqlConnection的连接字符串没有变,SQLSERVER的连接数也不会增加的。
      

  4.   

    不过你一定要注意,那就是如果你的SqlConnection对象在Open用完后一定要加上Close释放,如果你在没有Close的情况下再调用一次Open的话,SQLSERVER的数据库连接数是会加1的,如果你的程序中有这样的调用,用不了多久,你的SQLSERVER的数据库连接数就会暴满(默认SQLSERVER的数据库连接数最大是100的)而导致无法查询的。(不信的话你可以把这个conn连续Open两下看看效果。)
      

  5.   

    try
    {
    }
    catch
    {
    }
    finally
    {
    这里关闭。。用完就关
    }
      

  6.   

    这个没事的!
    .NET是要在CLOSE之后过一段时间才会真正释放连接的!
    这和.NET的对象清理机制有关系!
    在这段时间里你就是再OPEN也不会增加连接数!
    不必担心连接数过多的问题!
      

  7.   

    SQL server 的进程是不会减少的,即使你使用了SQL以后,把数据库服务器暂停掉,进程也不会减少的,即使暂停了,他还可以保证以前已经连接上的用户继续使用.所以更别说close了
      

  8.   

    最好自己open,然后自己close.
    或者using(SqlConnection con = new SqlConnection())
        {}