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

时间:2011-06-17 06:38:54

标签: c# mysql vb.net datagridview

我在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表中的所有行,同时删除FIRST表中mysql中的数据。

我尝试打开mysql数据库,数据在SECOND表中也被删除,问题为什么在第二个datagridview中查看,无法删除,仍保留以前的数据?如何在vb.net或C#中刷新datagridview绑定?感谢。

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

1 个答案:

答案 0 :(得分:2)

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

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

话虽这么说,你可能不得不做两件事之一......重新查询整个数据集(第一和第二表)以完全刷新实际数据库中的STILL ...或者......当您从数据集的第一个表中调用删除时,您必须在本地数据表TWO中执行删除处理以使其保持同步。