2009-05-28 10 views
0

私の問題は、データベースから読み込む前に有効なデータベース接続があるかどうかをチェックすることです。データベースがダウンしている場合は、代わりにXMLファイルに書きたいと思います。私は実行時にデータベースの場所を持っています(それが稼働している場合)ので、データベースが動作していたら、新しいsqlConnectionを作成することができます。データベースが利用可能かどうかの確認?

答えて

2

一般的なtry ... catch ... finally構造体を使用し、特定の例外の種類とメッセージに基づいて、xmlに書き込むかどうかを決定します。

try 
{ 
SqlConnection connection = new SqlConnection(DB("Your DB Name")); 
connection.Open(); 
} 
catch (Exception ex) 
{ 
// check the exception message here, if it's telling you that the db is not available. then 
//write to xml file. 
    WriteToXml(); 
} 
finally 
{ 
    connection.Close(); 
} 
0

DBへの接続を実際に開いていなくても、DBが稼動しているかどうかは実際には分かりません。しかし、依然として、接続中に接続が切断される可能性があるため、これを考慮する必要があります。

2
私はちょうどのようなもの使用することになり

使用(SqlConnectionオブジェクトでCONN =新しいSqlConnectionオブジェクトの(c)){ conn.Open(); }

無効な場合は例外をスローします。例外のxmlに書き込むことができます。 SQL Serverの場合

SELECT * FROM DUAL 

SELECT 1 

Basiclyのほんのいくつかの種類:

2

簡単な方法は、単純なクエリを実行し、エラーが発生するかどうかを確認するために、次のようになります。

Oracleの場合データベースが起動し、要求に応答して接続がタイムアウトしていないことを知らせる比較的「フリー」なクエリです。

+0

+1 - 接続をプールする場合、プールは実際に無効になった接続を返す可能性があるため、接続を開くだけでは不十分です。これは、DBプールがアクティブな接続として表示されている間にTCP/IP接続がタイムアウトするため、私たちのC# - > Oracleアプリケーションでは常に発生します。 –

関連する問題