2011-11-30 96 views
0

我们有一个非常以数据为中心的应用程序,它通常在具有可疑连接的网络上运行。SQL Server脱机时的客户反馈

我们希望在数据库处于脱机状态时向客户反馈,并显示某种警告屏幕(带有错误信息),直到网络恢复并且数据库再次可用。我想显示相同的屏幕,只要数据库由于任何原因不可用 - 即:服务停止,暂停,登录失败,网络关闭等。

我有一个例程处理SQLClient.SQLException,然后我解析对于SQLErrors并检查数字,问题是有不同的错误号码负载失败,我不断缺少一些。

是否有一些简单,一致的方式,我可以检查数据库服务器是否脱机或不可用?其他人如何处理这个问题而不让一些未处理的异常通过?

干杯

回答

0

你可以很容易地只捕获SQL异常这样的:

try 
{ 
... your code 
{ 
catch(SqlException sqlEx) 
{ 
... display your error page 
} 
catch(Exception ex) 
{ 
... general error handling 
} 
+0

感谢您的回答。这将捕获所有的SQLExceptions,即使存在密钥违例或只是语法错误的查询,也会给我的用户数据库脱机错误。我想责怪所有我的代码失败的数据库在脱机状态,但我想我会很快被抓出来.. :)我想能够分裂“无法连接到数据库出于某种原因”的错误来自所有其他SQLException错误。感谢您花时间回答。 – Molloch

+0

没有很好的方式去做你想做的事。 –

0

我会尝试创建一个连接字符串SqlConnection对象服务器,我需要检查连通性,尽量Open()此连接,并检查异常这里。不知道这是最有效的,但...

+0

感谢。我原来是这样实现的,并且正在以这种方式进行检查,但是发现如果数据库在已经打开的连接的一组读取等期间脱机,那么用户仍然得到UE。即:打开连接,创建数据读取器等,如果在读取期间服务器不可用,它只是表示为用户未处理的异常。 – Molloch