打开一个数据库连接 Conn.Open() 如果不关闭,他自动会在什么时候关闭? 网页载入完就自动关闭吗??

时间:2022-07-29 23:49:01
打开一个数据库连接 Conn.Open() 如果不关闭,他自动会在什么时候关闭? 网页载入完就自动关闭吗??

23 个解决方案

#1


连接不会自动关闭,如果程序中有一个地方的连接没有关,而这个程序又经常访问
那么一下就会出错了!

你可以自己试试。

#2



我们建议使用显示关闭,close或者dispose
不是显式关闭的连接可能不会添加或返回到池中,
如果连接已超出范围但没有显式关闭,则仅当达到最大池大小而该连接仍然有效时,该连接才会返回到连接池中。

#3


你为什么不把它关了呢
应该要整个application结束才会自动关吧
、多浪费资源

#4


不会自动关闭,等到CLR进行垃圾回收时才关闭.

#5


必须Close

#6


将连接放回连接池

#7


dispose就不用了

#8


数据库是大型数据库,连接池会自动进行处理。但仍会占用会话资源。

#9


强烈建议手工关闭,用完就关!

#10


用完不关,太懒了吧

#11


连接多了系统耗不起啊,用完就关咯

#12


支持,手工关闭就是了拉

#13


打开一个数据库连接 Conn.Open() 如果不关闭,网页载入完后不会自动关闭。建议还是Conn.Close()

#14


数据库会自己关的!不过还是手动关闭实在!

#15


为什么不关?叫你关你就关!少罗嗦!

#16


楼主只是问一下如果不是手动关闭它会在何时关闭,而不是说不愿意手动关闭。
大家好像兴师问罪一样。

#17


建议还是Conn.Close()

#18


笑死~

人家想什么时候关就什么时候关,人家自己乐意就行~~~大家干嘛这么气愤啊~

#19


小弟有一个问题:什么时候关最好啊?打个比方说用到DataList控件,动态的代码全在后台写,DataList在页面载入时数据的绑定、编辑时数据的更新等等时候都要用到数据库。如果每访问一次数据都打开、关闭一次连接肯定很费时;如果只打开一个连接而不及时关闭,那么页面在postback后肯定会出错,说“……文件已被使用……”等等。请问大家是如何解决这个问题的?我想只要初学ASP.NET大家都会碰到这个问题吧

#20


如果该页面多载入几次那么连接池就会满了……建议还是Close()一下的好……

#21


Conn.Close()是必要的


Conn.Dispose()是不推荐的

#22


用完就关

#23


调用Close或Dispose方法可以将连接释放回连接池。只有当生存期结束或出现严重错误
时,连接对象才会被从连接池删除,如果你想处理的更好,你可以像下面所展示的代码那样使用Using关键字:
using ( SqlConnection conn = new SqlConnection(CONNECT_STRING) )
{
    try
    {
        conn.Open();
        // Use conn in here...
    }
    catch ( SqlException sqlEX )
    {
        // Log errors here...
    }
} //一旦超出这个括号的范围SqlConnection对象的Dispose方法会被调用

更多关于SqlConnection的编程实例,请参见 Data Access Application Block for .NET.

原文出处:MSDN Magazine Apr. 2004(Web Q&A)

#1


连接不会自动关闭,如果程序中有一个地方的连接没有关,而这个程序又经常访问
那么一下就会出错了!

你可以自己试试。

#2



我们建议使用显示关闭,close或者dispose
不是显式关闭的连接可能不会添加或返回到池中,
如果连接已超出范围但没有显式关闭,则仅当达到最大池大小而该连接仍然有效时,该连接才会返回到连接池中。

#3


你为什么不把它关了呢
应该要整个application结束才会自动关吧
、多浪费资源

#4


不会自动关闭,等到CLR进行垃圾回收时才关闭.

#5


必须Close

#6


将连接放回连接池

#7


dispose就不用了

#8


数据库是大型数据库,连接池会自动进行处理。但仍会占用会话资源。

#9


强烈建议手工关闭,用完就关!

#10


用完不关,太懒了吧

#11


连接多了系统耗不起啊,用完就关咯

#12


支持,手工关闭就是了拉

#13


打开一个数据库连接 Conn.Open() 如果不关闭,网页载入完后不会自动关闭。建议还是Conn.Close()

#14


数据库会自己关的!不过还是手动关闭实在!

#15


为什么不关?叫你关你就关!少罗嗦!

#16


楼主只是问一下如果不是手动关闭它会在何时关闭,而不是说不愿意手动关闭。
大家好像兴师问罪一样。

#17


建议还是Conn.Close()

#18


笑死~

人家想什么时候关就什么时候关,人家自己乐意就行~~~大家干嘛这么气愤啊~

#19


小弟有一个问题:什么时候关最好啊?打个比方说用到DataList控件,动态的代码全在后台写,DataList在页面载入时数据的绑定、编辑时数据的更新等等时候都要用到数据库。如果每访问一次数据都打开、关闭一次连接肯定很费时;如果只打开一个连接而不及时关闭,那么页面在postback后肯定会出错,说“……文件已被使用……”等等。请问大家是如何解决这个问题的?我想只要初学ASP.NET大家都会碰到这个问题吧

#20


如果该页面多载入几次那么连接池就会满了……建议还是Close()一下的好……

#21


Conn.Close()是必要的


Conn.Dispose()是不推荐的

#22


用完就关

#23


调用Close或Dispose方法可以将连接释放回连接池。只有当生存期结束或出现严重错误
时,连接对象才会被从连接池删除,如果你想处理的更好,你可以像下面所展示的代码那样使用Using关键字:
using ( SqlConnection conn = new SqlConnection(CONNECT_STRING) )
{
    try
    {
        conn.Open();
        // Use conn in here...
    }
    catch ( SqlException sqlEX )
    {
        // Log errors here...
    }
} //一旦超出这个括号的范围SqlConnection对象的Dispose方法会被调用

更多关于SqlConnection的编程实例,请参见 Data Access Application Block for .NET.

原文出处:MSDN Magazine Apr. 2004(Web Q&A)