只是想知道在VB.NET中连接丢失时是否有办法以最干净的方式关闭所有SQL连接和命令(也可以在C#.NET中)。
我想要实现的目标:
使用System.Net.NetworkInformation.NetworkAvailabilityChanged事件,我监控连接是否已丢失。如果它已丢失,我将禁用所有用户输入 - 效果很好。网络重新启用,UI已启用。 (竖起大拇指)
然而,现在,我的困境来了。如果在连接断开之前正在执行SQL查询,然后网络丢失,则查询会按预期返回空值,但是如果这是数据表/字段的中间填充,那么我将获得NullReferenceExceptions。我的问题是:
无论如何在连接断开后干净地退出子?我已经尝试过Application.ExitThread,但这似乎并不能完全削减它。我是否需要在我的对象中放置掉连接处理程序,以便在删除连接时,相应的对象不会返回或尝试分配空数据?
非常感谢任何帮助。不要求简单的代码,如果可能的话需要解释。欢呼声。
答案 0 :(得分:1)
如果您按照"使用"最佳实践,如:
Using cn As New SqlConnection(connectionString)
...
End Using
然后编译器将生成在抛出异常时清除连接的代码。