2009-03-09 9 views
8

明らかに(MSDN)OleDbConnection.ResetState()は何もしないので、接続が失敗した場合でもOleDbConnection.StateはOpenに設定されます。私はこれを最善の回避策を探しているので、接続状態をチェックすると、例外が発生することはありません(接続が最後のチェックと使用の試行の間に失敗していない限り)。OleDbConnection状態を確認する最良の方法

例外がスローされたかどうかを確認するたびに、「役に立たない」SQL文を送信するよりも優れた方法はありませんか?実際に使用する前に接続が開いていることをどのように確認しますか?あなたのケースでは

+0

本当に良い質問です。 –

+0

@Robert - 本当に! –

答えて

5

私は、次の操作を行います。

  1. 接続が「本当に」それを使用する前に、開いているかどうかわからされて気にしないでください:それはとにかくほとんどの時間になり、そしてあなた'LLサーバーへの無駄なラウンドトリップをたくさん用意してください
  2. ただし、接続を使用するたびに例外がないか確認してください(ここではコピー/ペーストを避けるヘルパーメソッドを作成してください)
  3. 例外がある場合は、データベース接続の「実際の」状態をチェックします。サーバーへの接続が失われたときに取得できる例外のタイプは、時には驚くようなものです(接続が壊れているときに何が起きているかによって異なります)。

希望します。

関連する問題