【发布时间】:2015-08-14 06:32:01
【问题描述】:
只是想知道当连接在 VB.NET(也可以是 C#.NET)中丢失时,我是否可以以最干净的方式关闭所有 SQL 连接和命令。
我想要达到的目标:
使用 System.Net.NetworkInformation.NetworkAvailabilityChanged 事件,我正在监视连接是否丢失。如果它丢失了,我将禁用所有用户输入 - 效果很好。网络恢复正常,UI 已启用。 (竖起大拇指)
然而,现在我的困境来了。如果在连接断开之前执行 SQL 查询,然后网络丢失,则查询会按预期返回空值,但是如果这是数据表/字段的中间填充,那么我会得到 NullReferenceExceptions。
我的问题是:
在连接断开后是否可以干净地退出子?我已经尝试过 Application.ExitThread,但这似乎并没有完全解决它。我是否需要在我的对象中放置断开的连接处理程序,以便在断开连接时,相应的对象不会返回或尝试分配空数据?
非常感谢任何帮助。不要求纯代码,如果可能的话需要解释。干杯。
【问题讨论】:
-
如果一个查询/对象应该返回数据,或者将数据写入数据库,但它无法实现该目的,则抛出异常。 (你正在处理一个异常情况,你的对象不能做它应该做的事情。)然后让调用代码处理这些异常。
-
这是有道理的,当然。然而,这意味着大部分代码将被包装在 try-catch 语句中。我想这是唯一可行的方法。谢谢!
标签: sql-server vb.net event-handling