如何在SqlException中识别所有与连接相关的异常类型?

时间:2017-08-16 09:20:42

标签: c# sql-server vb.net exception

我正在编写一个连接到Sql server 2008的VB.net winforms应用程序。(C#答案也被接受)

我试图区分与数据库连接相关的任何SqlExceptions和其他SQL特定错误(例如错误的语法等)。

我在连接中使用try / catch,如下所示:

Try
   //code to open the connection/access the DB/etc.
Catch ex As SqlException When ex.Number=???
   //Do stuff
End Try

我认为检查错误代码是正确的方法。我的问题是有许多不同的错误代码(我不确定有多少)与数据库的连接有关。例如:

121 =超时(可能是由于与网络断开连接造成的)。

53 =无法连接(再次,可能是因为没有连接到网络)。

1326 =您已连接到物理服务器计算机,但Sql Server未运行。

我相信还有很多甚至更多。我是否必须单独检查每一个或者有更好的方法吗?如果我必须单独检查它们,是否有可以参考的任何地方的连接相关列表?

1 个答案:

答案 0 :(得分:0)

正如@jdweng在注释中建议的那样,我在查询周围添加了一个try / catch块。这样一来,如果发生异常,除了与连接有关,别无其他。

那么简单!再次感谢。