0

私は私のSqlConnectionを持っています:

        this._sqlConnection = new SqlConnection(sCxn);
        this._sqlConnection.StateChange += new StateChangeEventHandler(_sqlConnection_StateChange);

これが接続状態変更イベントをキャッチするメソッドです。

    void _sqlConnection_StateChange(object sender, StateChangeEventArgs e)
    {
        this._previousState = e.OriginalState;
        this._connectionState = e.CurrentState;
        log.WriteLog("Connection change status: previous " + e.OriginalState.ToString() + ", current " + e.CurrentState.ToString(), log.INFO);
    }

通常のアプリのアクティビティ中に接続を切断すると、メソッドから正しい応答が得られます。

接続変更ステータス: 以前のオープン、現在のクローズ

しかし、接続を再度アクティブにする (データベース サービスを開始する) と、次のイベント シーケンスが開始されます。

  • 09.10.41: 接続変更ステータス: 以前のクローズ、現在のオープン
  • 09.10.41: 接続変更ステータス: 以前のオープン、現在のクローズ
  • 09.10.51: 接続変更ステータス: 以前のクローズ、現在のオープン
  • 09.10.51: 接続変更ステータス: 以前のオープン、現在のクローズ
  • 09.11.01: 接続変更ステータス: 以前のクローズ、現在のオープン
  • 09.11.01: 接続変更ステータス: 以前のオープン、現在のクローズ
  • 09.11.12: 接続変更ステータス: 以前のクローズ、現在のオープン
  • 09.11.12: 接続変更ステータス: 以前のオープン、現在のクローズ

アプリはデータベースにクエリを実行できますが、接続状態はクローズ状態のままです。

私が間違っていることは何ですか?

前もってありがとう、サミュエル

4

1 に答える 1