如何在vb.net或C#中刷新datagridview绑定

本文关键字:刷新 datagridview 绑定 vb net | 更新日期: 2023-09-27 17:59:38

我在mysql数据库中创建了两个表(FIRSTtable和SECONDtable)和两个相关的表。

FIRST表有一列(product_id(pK),product_name)。SECOND表具有列(machine_id、production_date、product_id(fK),product_quantity、operator_id)。

使用具有UpdateCascade和DeleteCascade的product_id列的两个表之间的关系。当我尝试使用sql脚本时,这两种关系都正常运行。假设我删除了FIRST表中的所有product_id,那么SECOND表中所有现有的数据都将被删除。

这两个表都显示在datagridview中。当我删除FIRST表中的所有数据时,datagridview FIRST表的所有行都将被删除,mysql中的数据FIRST表也将被删除。

我试着打开mysql数据库,第二个表中的数据也被删除了,问题是为什么第二个数据网格中的视图不能删除,还保留以前的数据?如何在vb.net或C#中刷新datagridview绑定?谢谢

    With Me.SECOND_DataGridView
        .Datasource = Nothing  ' tried this, but failed.
        .DataSource = MyDataset.Tables("SECOND_table")
    End With

如何在vb.net或C#中刷新datagridview绑定

我相信您遇到的是MySQL引擎实际上正在为您执行级联删除。

当您将MySQL数据查询到本地化的C#"DataTable"(数据集中的表)中时,该数据现在在内存中,而不是直接链接到磁盘上的数据。当您删除第一个数据表的"内存"版本中的行时,它会导致删除发生在第二级表的SERVER上,而不会直接更新数据表二的内存版本。

话虽如此,你可能不得不做两件事中的一件。。。重新查询整个数据集(表一和表二),以获得实际数据库中仍然存在的内容的完整刷新。。。或者。。。当您从数据集的表一调用delete时,您还必须在本地数据表TWO中执行删除处理,以保持其同步。