gpt4 book ai didi

c# - 如何在 C# WinForms 中获得有关外部 MS Access 数据库更新的通知?

转载 作者:行者123 更新时间:2023-11-30 22:43:44 24 4
gpt4 key购买 nike

我有一个 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 界面或其他应用程序对数据库执行的行更新、插入、删除。

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

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

最佳答案

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

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

然后您只需要用更新来更新数据集。如果表单绑定(bind)正确,它应该会自动更新。

关于c# - 如何在 C# WinForms 中获得有关外部 MS Access 数据库更新的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com