0

MySqlConnection.StateChangeはどのように機能しますか?

次のコードがあります。

conn.StateChange += ConnectionStateChanged;

private void ConnectionStateChanged(Object sender, StateChangeEventArgs e) {
    switch (e.CurrentState) {
    // is never equal to Fetching
    }
}

public DataTable Query(string query) {
    DataTable dt = new DataTable();

    using (MySqlDataAdapter a = new MySqlDataAdapter(query, conn)) {
        try {
            a.SelectCommand.CommandTimeout = 5;
            a.Fill(dt);
        } catch {
            return null;
        }
    }

    return dt;
}

ConnectionStateChangedがConnectionState.FetchingまたはConnectionState.Executingで呼び出されないのはなぜですか?

4

1 に答える 1

1

まあ、私はmsdnを誤解しているかもしれませんが、これらの状態は実装されていないようです (列挙値は.net 4.5でも「予約」されているだけです):

実行中 接続オブジェクトはコマンドを実行しています。(この値は、製品の将来のバージョン用に予約されています。)

Fetching 接続オブジェクトがデータを取得しています。(この値は、製品の将来のバージョン用に予約されています。)

于 2013-03-11T13:07:28.943 に答える