如何在外部MS Access数据库更新的C#WinForms中收到通知?

我有一个DataGridView显示来自MS Access数据库的数据。 我正在使用带有TableAdapterBindingSourceDataSet将数据链接到DataGridView

  tableAdapter = new AccountsTableAdapter(); dataTable = new Accounts.AccountsDataTable(); tableAdapter.Fill(dataTable); tableBindingSource = new BindingSource(); tableBindingSource.DataSource = dataTable; dataGridView1.DataSource = tableBindingSource; 

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

此外,根据此假定通知,如何更新我的DataSet以便仅更新受影响的行 – >仅接收新插入的行,已修改的行的受影响的字段值以及已删除的索引。

所以,基本上,我想要获得的是一种将数据库表与DataGridView同步的方法。 我已经设法将我在DataGridView修改或插入的行保存到数据库中,现在能够执行此数据库的互惠端 – 查看绑定会很好。

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

例如,假设您从sql“SELECT * FROM Contact”填充表单。 然后每分钟左右,运行查询“SELECT * FROM Contact WHERE LastModified> @LastFetched”,其中@LastFetched是您上次获得更新的时间。 您将希望从数据库中获取@LastFetched的值,因为客户端计算机和数据库服务器可能没有将它们的时间同步到足够接近以正常工作。

然后,您只需要使用更新来更新DataSet。 如果表单绑定正确,则应自动更新。