当前位置:  开发笔记 > 数据库 > 正文

结束使用关闭打开的SQL连接

如何解决《结束使用关闭打开的SQL连接》经验,为你挑选了3个好方法。

如果我在一个Using中包装一个SQLConnection,我应该关闭它还是使用句柄来结束它?

using cn as new system.data.sqlclient.sqlconnection()
    cn.open
    '{do a bunch of other stuff with commands and datareaders here}
    cn.close 'Do I need this?
end using 

matt b.. 96

退出using块会对相关对象(cn在您的示例中)调用.Dispose(),对于SqlConnection,它将关闭连接和任何打开的资源.



1> matt b..:

退出using块会对相关对象(cn在您的示例中)调用.Dispose(),对于SqlConnection,它将关闭连接和任何打开的资源.


换句话说:是的.
Joel Coehoorn是的.很暧昧.完整的答案是:"你不需要关闭,因为最终使用处理它"
如果在使用块中抛出异常会发生什么?连接是否仍会被处理?

2> Darin Dimitr..:

更准确地说,调用Dispose或Close会将底层物理连接标记为"未使用" - 但并不真正关闭它.因此,尚未物理关闭的"未使用"连接可用于合并.因此 - 调用Dispose将返回到连接池的连接.


为什么检查错误的答案?很明显,close/dispose实际上并没有关闭连接,而是将它带回游泳池.

3> Hector Corre..:

根据MSDN,您不需要关闭声明.

"以下示例创建一个SqlConnection,打开它,显示它的一些属性.连接在using块的末尾自动关闭." - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有