gpt4 book ai didi

c# - 两个 datagridview 绑定(bind)到同一个表。刷新不起作用

转载 作者:行者123 更新时间:2023-11-29 22:22:23 25 4
gpt4 key购买 nike

情况:

我正在 VS2013 中使用 C# 和 .NET4.0 编写一个 Winforms 应用程序。

在选项卡式控件上,我有两个选项卡。

  • 在第一个中,我有一个通过数据适配器绑定(bind)到 MySQL“产品”表的 dgv,还有一个绑定(bind)到 MySQL“库存”表的 dgv。这些是相关的,因此仅显示所选产品的库存商品。
  • 在第二个选项卡上,我需要显示一个带有完整“库存”表的 dgv,不受“产品”的约束。因此,我设置了一个单独的适配器,由同一个 MySQL“stock”表填充。我使用单独的适配器,以便获得所有行的不受约束的 View 。

我还需要确保,当我在一个选项卡上对库存进行更改时,这会反射(reflect)在另一个选项卡中。

问题:

每次用户退出 dgv 行时,我都会更新数据库(通过 RowValidated 上的适配器.Update)。为了确保更改反射(reflect)在两个选项卡中,我处理 TabControl.Selected 事件,在其中(重新)填充关联的适配器,然后刷新 dgv。但是,这不会显示在其他选项卡中所做的更改。我已确保在切换选项卡之前,MySQL 数据库已正确更新。因此,似乎其他适配器或 dgv 由于某种原因没有接收到此信息。

问题:

如何才能成功实现此刷新?我认为这可能是使用错误命令的简单问题,或者可能是让两个适配器指向同一个表是错误的方法。

最佳答案

事实证明,当我在选项卡之间移动时,插入和修改会被反射(reflect),但删除不会被反射(reflect)。然后我意识到我的(重新)填充适配器将刷新修改的行并添加新行,但它会使删除行保持不变。因此,我只是在 Fill 之前插入了一个 DataTable.Clear,这让它工作得很好。

关于c# - 两个 datagridview 绑定(bind)到同一个表。刷新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30594050/

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