C# 如何在WinC窗体中获得外部MS Access数据库更新的通知?

C# 如何在WinC窗体中获得外部MS Access数据库更新的通知?,c#,winforms,ms-access,ado.net,datagridview,C#,Winforms,Ms Access,Ado.net,Datagridview,我有一个DataGridView,它显示来自MS Access数据库的数据。我使用带有TableAdapter和BindingSource的数据集将数据链接到DataGridView: 我想知道当数据库表从我的应用程序外部被修改时,我如何检测或得到通知—从Access界面或其他应用程序对数据库执行行更新、插入和删除 另外,根据这个假定的通知,我如何更新我的数据集,以便只更新受影响的行->只接收新插入的行、修改的行的受影响字段值和删除的行的索引 所以,基本上,我试图获得的是一种将数据库表与Data

我有一个DataGridView,它显示来自MS Access数据库的数据。我使用带有TableAdapter和BindingSource的数据集将数据链接到DataGridView:

我想知道当数据库表从我的应用程序外部被修改时,我如何检测或得到通知—从Access界面或其他应用程序对数据库执行行更新、插入和删除

另外,根据这个假定的通知,我如何更新我的数据集,以便只更新受影响的行->只接收新插入的行、修改的行的受影响字段值和删除的行的索引


所以,基本上,我试图获得的是一种将数据库表与DataGridView同步的方法。我已经设法将我在DataGridView中修改或插入的行保存到数据库中,现在最好能够执行此数据库-视图绑定的反向操作。

我知道的唯一方法是轮询数据库。如果数据具有LastModified字段,则可以请求数据库获取更新的行,然后将结果合并到数据集中

例如,假设您从sql SELECT*from联系人填充表单。然后每隔一分钟左右,运行查询SELECT*FROM Contact,其中LastModified>@LastFetched其中@LastFetched是您上次获得更新的时间。您需要从数据库中获取@lastfetch的值,因为客户端计算机和数据库服务器可能没有足够的时间同步,无法正常工作

然后,您只需要用这些更新更新数据集。如果表单绑定正确,则应自动更新

        tableAdapter = new AccountsTableAdapter();

        dataTable = new Accounts.AccountsDataTable();
        tableAdapter.Fill(dataTable);

        tableBindingSource = new BindingSource();
        tableBindingSource.DataSource = dataTable;

        dataGridView1.DataSource = tableBindingSource;