我想在 WinForms 中创建一个从数据库查询中提取数据的 DataGridView。它应该每 10 秒重新运行一次查询并自动刷新 DataGridView。数据的初始加载和显示工作正常。但之后每次更新(使用计时器)时,我都会收到Index 0 has no value三次 DataError 并且所选单元格变为空。更新完成后(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);
}));
}
}
我不知道我在这里做错了什么。这是正确的方法吗?