Как работает 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?
Хорошо, я могу неправильно понять msdn, но эти состояния, похоже, не реализованы (значения перечисления просто "зарезервированы" ), даже в .net 4.5):
Выполнение Объект соединения выполняет команду. (Это значение равно зарезервировано для будущих версий продукта.)
и
Извлечение Объект соединения извлекает данные. (Это значение равно зарезервировано для будущих версий продукта.)