У меня есть UltraGrid
в моем проекте, и у меня есть функция обновления в форме, чтобы обновлять данные в базе данных, где находятся данные.Установить строку RowState строки DataTable для удаления
Данные в сетке хранятся как DataTable
. Если строка существующих данных удаляется из UltraGrid
, я хочу иметь возможность установить RowState
этой строки в DataTable
в «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. Delete() ') и состояние строки. Если вы используете DataAdapter, *** он будет принимать соответствующие меры для каждой строки на основе rowstate: 'Dim rows = myDA.Update (dsProducts.Tables (0))' – Plutonix
@Plutonix Я не программно устанавливая строку, которую нужно удалить, которая автоматически обрабатывается программой UltraGrid. Используя «DataAdapter», вы имеете в виду собственно запрос update/delete? Вместо «OleDbCommand»? – David
Это [Поиск значений через datagridview] (http://stackoverflow.com/a/33702351/1070452) показывает, как настроить и использовать DataAdapter («OleDBDataAdapter» в вашем случае, я думаю). Они будут «удерживать» команды «Обновить», «Удалить и т. Д.» И выдавать их с помощью метода «Обновление». – Plutonix