查找所有打开的SqlConnection。

3

我在另一台服务器上读写Sql Server的数据,因此需要打开许多SqlConnection,在读写完成后关闭它们,但有时无法连接到服务器,但重新启动服务器后一切正常,我猜想是因为某些SqlConnection未关闭,是否有办法查找所有已经打开的SqlConnection


请发布连接代码... - Akash KC
1个回答

4
短而直接的回答是“不行”。唯一能做到的就是明确添加自己的跟踪代码,但实际上你正在冒着“长时间保留它们”的风险,而且很可能会忘记在已经忘记关闭的两个位置添加它。
这里的首选“修复”方法是:不再担心“关闭”事物,而是开始“使用”它们。如果每次接触连接时都使用“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 中,这也包括命令和读取器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接