DataAdapter.Fill NullReferenceException после DataTable.Columns.Clear и сортировка столбцов - PullRequest
0 голосов
/ 24 августа 2011

Я использую MySQL с C # и DataGridView.

Проблема возникает, когда пользователи щелкают столбец, чтобы отсортировать его, после чего следует действие, которое заставляет столбцы очищаться (происходит, когда пользователь отмечает, какие столбцы следует видеть при использовании флажков).

Фактическое исключение выдается в dataAdapter.Fill (dt).

Код работает нормально, когда пользователь не сортирует фактические столбцы. Это также работает нормально после того, как пользователь переставил столбцы.

Это мой код:

    public void GetDataAndFilter(string selectQuery, bool colChange)
    {
        using (var conn = connect())
        {
            MySqlCommand cmd = new MySqlCommand(selectQuery, conn);
            dataAdapter = new MySqlDataAdapter(cmd);
            dt.Clear();

            if (colChange)
                dt.Columns.Clear();

            dataAdapter.Fill(dt);

            conn.Close();
        }
    }

Я пытался исправить это в течение некоторого времени, но у меня закончились идеи.

Спасибо за ваше время, я ценю это.

1 Ответ

1 голос
/ 24 августа 2011

Я думаю, что лучше очистить следующую строку:

dt.Clear();

dt.Columns.Clear();

и снова создать экземпляр dt вместо очистки его столбца и самого себя.

dt = new DataTable();

надеюсь, это поможет.

...