private void RevenueSummary_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'accountingDataSet1.Revenue' table. You can move, or remove it, as needed.
this.revenueTableAdapter.Fill(this.accountingDataSet1.Revenue);
string strGEC = GEClabel.Text;
fillByToolStripButton.PerformClick();
}嗨,我有问题显示的数据后,我添加了一个新的收入项目。它将显示在数据库中,但不会显示在datagridview中。只有当我关闭应用程序并再次运行它时,它才会出现。
发布于 2011-01-17 15:30:49
正如我在您的代码中看到的,您只在表单加载时调用fill方法(我假设RevenueSummary_Load方法处理表单的load事件),这使得accountingDataSet1仅在表单加载时才被填充,这就是为什么当您更新数据库时,它不会反映在dataset中。
有两件事可以解决这个问题。
1)使用一个ServiceBroker,当通过SqlDependency更新数据库时,它将执行notify your application (我假设您的数据库具有此功能)。
2)另一个简单的方法是有一个刷新按钮,您可以在其中再次填充dataset。
3)最后,您可以使用计时器在每个时间间隔填充dataset
注意:SQL Server和Oracle都支持变更数据捕获。
更新
我不知道MS Access是否有推送通知功能。正如我在互联网上搜索过的,你唯一的选择要么是使用基于定时器的数据库轮询,要么是实现一个FileSystemWatcher对象来监控你的MS Access数据库文件是否发生了变化。here is an example对此方法的支持。
https://stackoverflow.com/questions/4710453
复制相似问题