我在我的項目中有一個UltraGrid
,並且我在表單上有一個更新函數來更新數據庫中匹配數據的數據。將DataTable行的RowState設置爲刪除
網格中的數據被存儲爲DataTable
。如果從UltraGrid
中刪除了一行現有數據,我希望能夠將DataTable
中該行的RowState
設置爲「RowState.Deleted , so that in the Update function I can check the
RowState」,並且如果它是刪除的行,則將其刪除,否則,更新數據。
我該如何去做這件事?到目前爲止,我有下面的代碼,但返回的行數是1(或者網格中的當前行數)而不是2(在刪除一行之前的數字)。
如何以及在代碼中的哪裏,我是否將已刪除行的RowState
設置爲RowState.Deleted
?有沒有其他的方法使用UltraGrid
?
dsProducts.Tables.Add(commDt.Copy) -- commDt is the DataTable linked to the UltraGrid
tr = con.BeginTransaction(
For Each dr As DataRow In dsProducts.Tables(0).Rows
If dr.RowState = DataRowState.Deleted Then
Try
你不需要做任何的是,僅僅刪除行('的DataRow。刪除()')並設置行狀態。如果你使用DataAdapter,*** ***會根據行狀態爲每一行採取適當的操作:'Dim rows = myDA.Update(dsProducts.Tables(0))' – Plutonix
@Plutonix我沒有以編程方式設置要刪除的行,這是由'UltraGrid'自動處理的。通過使用'DataAdapter',你的意思是實際的更新/刪除查詢本身嗎?而不是'OleDbCommand'? – David
這[通過datagridview搜索值](http://stackoverflow.com/a/33702351/1070452)顯示瞭如何配置和使用DataAdapter(我想你的情況下是''OleDBDataAdapter'')。他們將「保留」更新,刪除等命令,並通過更新方法發出它們。 – Plutonix