emilius94 Ответов: 2

Обновление изменений datagridview в SQL (большая база данных)


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

try
          {
              SqlConnection con = new SqlConnection(constr);
              con.Open();

              SqlDataAdapter adapter = new SqlDataAdapter();
              adapter.SelectCommand = new SqlCommand("SELECT * FROM trips", con);
              SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
              adapter.Fill(dt);
              adapter.Update(dt);

              MessageBox.Show("Changes Saved", "Updating...", MessageBoxButtons.OK, MessageBoxIcon.Information);
              con.Close();
          }
          catch (Exception ex)
          {
              MessageBox.Show(ex.ToString());
          }
          finally { lblCount.Text = "Total Records Displayed: " + dgvTrips.Rows.Count.ToString(); }


Что я уже пробовал:

Есть ли обходной путь для этого?

2 Ответов

Рейтинг:
14

emilius94

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


Рейтинг:
1

Garth J Lancaster

40 000 записей - в datagridview - вам не нравятся ваши пользователи ? (это пахнет "плохим дизайном")

Вы тоже можете

а) "загрузка страницы" ваших данных или

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


emilius94

Не все записи отображаются сразу. Я дам фоновую нить попробовать. Спасибо.

emilius94

Между прочим... Твой член пахнет плохим дизайном ты гребаный с * * * Лох лол