【问题标题】:How to refresh a dataset to reflect external changes to the database?如何刷新数据集以反映对数据库的外部更改?
【发布时间】:2014-03-10 23:53:08
【问题描述】:

在 WinForms 应用程序中,该应用程序使用来自使用数据源配置向导创建并连接到 Access 数据库的数据源的数据集。如何在运行时刷新数据集以反映外部发生的数据库更改(仅数据更改,无结构更改),而无需关闭并重新打开我的应用程序?

提前感谢您的帮助。

【问题讨论】:

    标签: vb.net ms-access dataset


    【解决方案1】:

    在向导应该创建的 tableadapter 上调用 .fill 命令。

    默认情况下,代码放置在您添加了 tableadapter 和数据集的表单的加载事件中,因此要么复制粘贴,要么创建一个新的 sub 并调用它。

    编辑:

    如果您通过设计器添加了表单设计器中 TableadapterManager 下列出的任何 tableadapter 的 clearBeforeFill 属性,如果没有,则必须在后面的代码中设置它。

    在后面的代码中,您的绑定源可能会发生几个事件,我建议将所需的代码放在 currentItemChanged 事件上,以便实时提交更改。

    【讨论】:

    • 非常感谢布兰登!我确实尝试使用 .Fill 命令,但由于表单有几个表适配器在表单加载时填充了父子记录,所以当我尝试重新填充时出现 ForeignKey 违规错误。在填充父表适配器之前,我必须清除子表适配器的填充,但我找不到这样做的方法。我正在使用 Dataset.Merge 来完成这项工作,但它不反映已删除的记录。
    • 如果您通过设计器添加了表单设计器中 TableadapterManager 下列出的任何 tableadapter 的 clearBeforeFill 属性,如果没有,则必须在后面的代码中设置它。在后面的代码中,您的绑定源上可能会发生几个事件,我建议将所需的代码放在 currentItemChanged 事件上,以便实时提交更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多