Автообновление sh WinForms DataGridView из базы данных - PullRequest
0 голосов
/ 06 августа 2020

Я хочу создать 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);
        }));
    }
}

Я не понимаю, что я здесь делаю не так. Это вообще правильный подход?

...