我打开SqlConnection
。
SqlConnection Conn = new SqlConnection(...);
Conn.Open();
...
Conn.Close();
Conn.Dispose();
//debugger breakpoint
当我在此断点处查看调试器时,Conn.ServerVersion
会抛出一个Sql异常:
连接已关闭
当然,我应该关闭连接,但是这个例外只是忽略了吗?或者我应该以不同的方式做这件事,如果我想避免得到这个例外,除了保持开放之外我还需要做什么?
我的理解是我的代码中没有任何例外,但我可能错了。 (我是新人)
答案 0 :(得分:7)
在您处理完连接对象后,请避免检查它。 ("医生,当我这样做时会很疼......""然后停止这样做!")最简单 - 也是最可靠 - 的方法是使用{而是{1}}声明:
using
然后using (var conn = new SqlConnection(...))
{
conn.Open();
...
}
无论如何都会被处理掉。请注意,您不需要调用conn
以及处置 - 并记下本地变量的更常规名称。
答案 1 :(得分:6)
你实际上没有问题。
正如您在问题中所注意到的,您无法从已关闭的连接中获取服务器版本。
当您在调试器中查看该属性时,您将获得异常。
只要您不尝试通过封闭连接在实际代码中访问它,您就完全没问题了。