Я хочу создать DataGridView в WinForms, который извлекает данные из запроса к базе данных. Он должен повторно запускать запрос каждые 10 секунд и автоматически обновлять sh DataGridView. Начальная загрузка и отображение данных работает нормально. Но после этого каждый раз, когда я обновляю (используя таймер), я трижды получаю DataError Index 0 has no value
, и выбранная ячейка становится пустой. После принудительного обновления (через 3-4 секунды) все ячейки отображаются правильно.
Запуск обновления (включая начальную загрузку):
private void timer1_Tick(object sender, EventArgs e)
{
Task.Run(() => UpdateMatchesTable(dataGridView1));
}
Затем метод обновления:
private void UpdateMatchesTable(DataGridView view)
{
if (checkBoxAutoRefresh.Checked)
{
pendingMatchesTableAdapter.Fill(userObjectsDataSet.PendingMatches);
view.Invoke(new MethodInvoker(delegate
{
(view.DataSource as BindingSource).ResetBindings(false);
}));
}
}
Я не понимаю, что я здесь делаю не так. Это вообще правильный подход?