Проблема упрощена:
У меня есть набор данных с некоторыми таблицами данных ...
У меня есть DataGrid Winforms, привязанный к одной из таблиц данных.
Пользователь вставляет несколько строк в указанный набор данных через DataGrid, скажем, 3 строки;
Все три строки теперь имеют свои RowState = DataRowState.Added.
Теперь я начинаю транзакцию sqlserver.
Затем вызовите dataAdapter1.Update (dataSet1), чтобы обновить строки в SqlServer.
строка 1 .. ОК
строка 2 .. ОК
строка 3 .. ошибка на уровне sqlserver (по замыслу я ввел уникальный индекс)
При обнаружении этой ошибки я откат транзакции sqlserver.
Я также пытаюсь «откатить» изменения набора данных / набора данных, используя либо Dataset1.RejectChanges () и / или Datatable1.RejectChanges ().
Проблема не в том, что .RejectChanges () работает так, как я предполагал. Моя таблица данных теперь имеет две строки (row1, row2), RowState = DataRowState.Unchanged; row3 вообще исчез.
Я хочу, чтобы при откате транзакции sqlserver все 3 строки в таблице данных оставались в ОДНОМ СОСТОЯНИИ до вызова метода dataAdapter1.Update ().
(Причина в том, что пользователь может посмотреть на ошибку в связанной DataGrid, предпринять корректирующие действия и повторить попытку обновления).
Есть идеи у кого-нибудь? то есть я ищу что-то, эквивалентное откату состояния на уровне таблицы данных ADO.