查找所有打开的SqlConnection
本文关键字:SqlConnection 查找 | 更新日期: 2023-09-27 18:20:28
我在另一台服务器上向Sql Server读取和写入数据,因此我需要打开许多SqlConnection
,我在读取或写入完成后关闭它们,但有时我无法连接到服务器,但在我重新启动服务器后,一切都很好,我想是因为一些SqlConnection
打开了,如果存在的话,有什么方法可以找到它们吗?
简短的回答是"否"。你能做到这一点的唯一方法是显式地添加你自己的跟踪代码,但你所做的实际上是冒着抓住它们更长时间的风险,而且你很可能会忘记在你已经忘记关闭东西的两个地方添加它。
这里首选的"修复"是:停止担心关闭的事情,而是启动using
。如果您每次触摸连接时都使用using
,则不能忘记释放它。
using(var conn = whatever.GetOpenConnection()) {
// ... do stuff
} // <=== here it will be disposed for us automatically, success or failure
// and disposable includes Close()
这同样适用于实现IDisposable
的任何类型。在ADO.NET的情况下,它也包括命令和读取器。