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;
}

为什么从未使用 ConnectionState.Fetching 或 ConnectionState.Executing 调用 ConnectionStateChanged?

4

1 回答 1

1

好吧,我可能误解了 msdn,但这些状态似乎没有被实现(枚举值只是“保留”,即使在 .net 4.5 中也是如此):

Executing连接对象正在执行命令。(此值保留用于产品的未来版本。)

Fetching 连接对象正在检索数据。(此值保留用于产品的未来版本。)

于 2013-03-11T13:07:28.943 回答