连接断开时干净地关闭SQL连接

时间:2015-08-14 06:32:01

标签: sql-server vb.net event-handling

只是想知道在VB.NET中连接丢失时是否有办法以最干净的方式关闭所有SQL连接和命令(也可以在C#.NET中)。

我想要实现的目标:

使用System.Net.NetworkInformation.NetworkAvailabilityChanged事件,我监控连接是否已丢失。如果它已丢失,我将禁用所有用户输入 - 效果很好。网络重新启用,UI已启用。 (竖起大拇指)

然而,现在,我的困境来了。如果在连接断开之前正在执行SQL查询,然后网络丢失,则查询会按预期返回空值,但是如果这是数据表/字段的中间填充,那么我将获得NullReferenceExceptions。

我的问题是:

无论如何在连接断开后干净地退出子?我已经尝试过Application.ExitThread,但这似乎并不能完全削减它。我是否需要在我的对象中放置掉连接处理程序,以便在删除连接时,相应的对象不会返回或尝试分配空数据?

非常感谢任何帮助。不要求简单的代码,如果可能的话需要解释。欢呼声。

1 个答案:

答案 0 :(得分:1)

如果您按照"使用"最佳实践,如:

Using cn As New SqlConnection(connectionString)
    ...
End Using

然后编译器将生成在抛出异常时清除连接的代码。