2012-01-10 10 views
1

私のアプリケーションは、SQL Server 2008およびEntity Frameworkで動作するWPF C#データベースアプリケーションです。アプリケーションの起動時にsql接続の状態をチェックする方法は?

SQL Serverが停止した場合、またはアプリケーションがハングアップしますが、この問題が発生した場合はユーザーにメッセージを表示します。 どうすればいいですか?

+0

このエラーは、データベースに接続しようとしたとき、または接続して接続が失敗したときに発生しますか? – Moonlight

+0

エラーはありません。ちょうど "ハング"と私はSQL Serverを起動すると、アプリケーションが動作を開始します。 –

答えて

2

SQL Serverのサービスが

http://support.microsoft.com/kb/912426/en-us

を実行して、データベースへのユーザー権限を持っていることを、検出するために、try-catchブロックで、単純な選択を実行されたかどうかを確認できます。

try 
{ 
var b = db.Table.FirstOrDefault(); 
} 
catch(Exception e) 
{ 
ShowMessageBox(e.Message); 
} 
1

ので - 一般的には - あなたは何の権限またはSQL Serverのサービスの状態をチェックする機能を有していなくてもよい、例外をキャッチし、どのようなユーザーに表示され、短いタイムアウト(5秒以下)を使用してデータベースに接続しようあなたは欲しい。

var csb = new SqlConnectionStringBuilder(yourConnectionString); 
csb.ConnectTimeout = 5; 
try 
{ 
    using(var c = new SqlConnection(csb.ToString()) 
    { 
    c.Open(); 
    } 
} 
catch(Exception ex) 
{ 
    Show the exception to user 
} 

go on your own 
関連する問題