私のアプリケーションは、SQL Server 2008およびEntity Frameworkで動作するWPF C#データベースアプリケーションです。アプリケーションの起動時にsql接続の状態をチェックする方法は?
SQL Serverが停止した場合、またはアプリケーションがハングアップしますが、この問題が発生した場合はユーザーにメッセージを表示します。 どうすればいいですか?
私のアプリケーションは、SQL Server 2008およびEntity Frameworkで動作するWPF C#データベースアプリケーションです。アプリケーションの起動時にsql接続の状態をチェックする方法は?
SQL Serverが停止した場合、またはアプリケーションがハングアップしますが、この問題が発生した場合はユーザーにメッセージを表示します。 どうすればいいですか?
SQL Serverのサービスが
http://support.microsoft.com/kb/912426/en-us
を実行して、データベースへのユーザー権限を持っていることを、検出するために、try-catchブロックで、単純な選択を実行されたかどうかを確認できます。
try
{
var b = db.Table.FirstOrDefault();
}
catch(Exception e)
{
ShowMessageBox(e.Message);
}
ので - 一般的には - あなたは何の権限または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
このエラーは、データベースに接続しようとしたとき、または接続して接続が失敗したときに発生しますか? – Moonlight
エラーはありません。ちょうど "ハング"と私はSQL Serverを起動すると、アプリケーションが動作を開始します。 –