我的项目中有一个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
答案 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