MySqlConnection.StateChange никогда не получает

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?

Теги:

1 ответ

1
Лучший ответ

Хорошо, я могу неправильно понять msdn, но эти состояния, похоже, не реализованы (значения перечисления просто "зарезервированы" ), даже в .net 4.5):

Выполнение Объект соединения выполняет команду. (Это значение равно зарезервировано для будущих версий продукта.)

и

Извлечение Объект соединения извлекает данные. (Это значение равно зарезервировано для будущих версий продукта.)

  • 0
    О, хватит. Так есть ли другой официальный способ узнать состояние соединения?
  • 0
    @PeterGoldwynn, насколько я знаю (но не знаю много по этому вопросу), вы можете просто открыть, закрыть (и подключиться в 4.5) ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню