绑定到同一个表的两个datagridviews。刷新不起作用

时间:2015-06-02 10:54:07

标签: c# mysql datagridview refresh dataadapter

场合

我正在使用带有.NET4.0的VS2013中的C#编写Winforms应用程序。

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

  • 在第一个中,我有一个通过数据适配器绑定到MySQL“product”表的dgv以及绑定到MySQL“stock”表的dgv。这些是相关的,因此只显示所选产品的库存商品。
  • 在第二个标签上,我需要显示带有完整“stock”表的dgv,不受“产品”限制。所以我已经设置了一个单独的适配器,从同一个MySQL“stock”表中填充。我使用单独的适配器,以便获得所有行的无约束视图。

我还需要确保在一个标签上对库存进行更改时,这会在另一个标签中反映出来。

问题

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

问题

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

1 个答案:

答案 0 :(得分:0)

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