将DataTable行的RowState设置为已删除

时间:2016-10-07 16:06:25

标签: vb.net datatable dataset infragistics rowstate

我的项目中有一个UltraGrid,我在表单上有一个更新函数来更新数据匹配的数据库中的数据。

网格中的数据存储为DataTable。如果从UltraGrid删除了一行现有数据,我希望能够将RowState中该行的DataTable设置为' RowState.Deleted {{1 RowState`,如果它被删除了行,则将其删除,否则更新数据。

我该怎么做呢?到目前为止,我有下面的代码,但返回的行数是1(或者,网格中的当前行数)而不是2(我删除一行之前的数字)。

代码中的方式和位置,我是否将已删除行的, so that in the Update function I can check the设置为RowState?是否有另一种方法可以使用RowState.Deleted

UltraGrid

2 个答案:

答案 0 :(得分:0)

网格将调用将行标记为已删除(设置RowState),如果您使用的是TableAdapter,则只需在表适配器上调用Update,将DataTable传递给TableAdapter,它将在数据库中执行更新。例如:

ultraGrid1.UpdateData()
Me.dbRowsTableAdapter.Update(Me.testDataSet)

如果您必须手动处理更新并且想要获取已删除的行,则可以在传递Select的DataTable上调用DataViewRowState。删除第三个参数。

答案 1 :(得分:0)

解决了它。

  • 在课程顶部声明DataTable

  • BeforeRowsUpdate方法上,在DataTable中插入一个新行,这是要删除的行的值。

  • 可选择包含一个确认框,以确保他们希望删除该行。如果他们取消删除,请从DataTable中删除该行。

  • DataTable可用于删除UPDATE查询中的行,而网格DataSource可以处理UPSERTS