MySqlConnection.StateChange永远不会获取

时间:2013-03-11 13:02:12

标签: c# mysql

MySql Connection.State Change如何工作?

我有以下代码。

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调用Connection StateChanged,也不调用ConnectionState.Executing?

1 个答案:

答案 0 :(得分:1)

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

  

执行连接对象正在执行命令。 (这个值是   保留给产品的未来版本。)

  

提取连接对象正在检索数据。 (这个值是   保留给产品的未来版本。)