Возврат к исходному RowState после SqlDataAdapter.Update

В aC# Dataset есть несколько таблиц. Транзакция создается, и каждая таблица сохраняется путем вызова sqlDataAdapter.Update(datatable). RowState каждой строки DataTable устанавливается в значение "Без изменений" в случае успешного обновления. Проблема, с которой я столкнулся, заключается в том, что когда возникает проблема при сохранении таблицы (например, повторяющихся значений в уникальных индексах), состояния строк строк, сохраненных до того, как текущий остается в неизменном состоянии. Таким образом, если пользователь исправляет значение и снова сохраняет исключение "Нарушение параллелизма: команда UpdateCommand затронула 0 из ожидаемых 1 записей". Существует SqlDataAdapter.AcceptChangesDuringUpdate, но я обнаружил, что он работает, только если SqlDataAdapter.Update вызывается с набором данных в качестве параметра, что я не могу сделать в этом случае. Мое решение - клонировать исходную таблицу, вызвать UpdateCommand с клоном и AcceptChanges, если все в порядке. Есть идеи получше? Спасибо.

0 ответов

Другие вопросы по тегам