我在基于Windows窗体的C#桌面应用程序中使用数据绑定的datagridview(sbDataGridView
)控件。
从数据库加载数据工作正常,所有值都正确显示。
但是,当通过手动添加某些行来模拟数据库中的数据更改时,datagridview控件不会自动反映此更改。有没有办法让控件知道更改并自动更新?
我已经添加了一些执行以下任务的时间,但没有一个能够工作......
private void RefreshTimer_Tick(object sender, EventArgs e)
{
// tBindingSource.ResetBindings(false);
// sBindingSource.ResetBindings(false);
// sbBindingSource.ResetBindings(false);
sbDataGridView.DataSource = null;
sbDataGridView.DataSource = sbBindingSource;
//MessageBox.Show("Tick");
//sbBindingSource.ResetBindings(false);
//tBindingSource.ResetBindings(false);
//sBindingSource.ResetBindings(false);
//sbDataGridView.Refresh();
//sbDataGridView.Invalidate();
//sDataSet.Reset();
//tTableAdapter.Fill(sDataSet.t);
//sTableAdapter.Fill(sDataSet.s);
//sbTableAdapter.Fill(sDataSet.sb);
//sbDataGridView.Invalidate();
}
在Form_Load
方法上,我有一行RefreshTimer.Start()
。
如果取消注释MessageBox行,则会每秒显示MessageBox。计时器当前设置为每秒经过一次。
(我已尝试过各种各样的命令...) 任何想法在这里有什么问题?
我已经尝试过来自C# DataGridView not updated when datasource is changed的“脏”解决方案,但这也无效。
祝你好运, 汤姆