2011-11-30 63 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