• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Datatable+datagridview

  • Автор темы Balda
  • Дата начала
B

Balda

MS VS Studio 2008 C#
Данные из БД загружаются в DataTable, к-й служит источником данных для DataGridView.
При первой загрузке данных в таблицу всё хорошо.
Но если перед следующей загрузкой данных:
Код:
table.Clear();
table.Columns.Clear();
SqlDataAdapter1.Fill(table);
пользователь отсортирует строки в гриде по какому-либо столбцу, то вылетает сообщение вида: "Object is not set to an instance of an object".

Если же изменить код так:
Код:
table.Reset();
SqlDataAdapter1.Fill(table);
то таблица заполняется данными и привязка таблицы к гриду сохраняется, но почему-то не отображаются строки в гриде.

Вопрос: почему так и что с этим делать?
 
C

Conkistador

Попробуйте очистить DataSource у Вашего DataGridView перед обновлением данных.

Код:
DataGridView1.DataSource = null;
table.Clear();
table.Columns.Clear();
SqlDataAdapter1.Fill(table);
DataGridView1.DataSource = table;
 
B

Balda

Нет. Не в привязке дело.
Ошибка возникает на этой строке:
Код:
SqlDataAdapter1.Fill(table);
В принципе проблема решана так: создаю каждый раз новую таблицу.
Тогда никаких ошибок не наблюдается.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!