2011-05-12 2 views
1

Почему ADO.NET throwng a DBConccurencyException, когда я пытаюсь обновить строку, которая уже удалена другим процессом, вместо просто игнорирования удаленной строки?ADO.NET DBConcurrencyException - попытка обновления уже удаленной строки

Есть ли доступная опция в ADO.NET, чтобы игнорировать этот факт?

Я использую SQLCommandBuilder с ConflictOption набор для ConflictOption.OverwriteChanges.

+1

Это по дизайну. Почему бы не просто обработать исключение и нести грациозно? – Darbio

+0

У вас есть источник для вашего предположения :)? – Rookian

+0

http://msdn.microsoft.com/en-us/magazine/cc163924.aspx посмотрите код на рисунке 3 ... – Darbio

ответ

1

Вы можете использовать перечисление DataViewRowState для выбора только измененных строк.

var rowsToUpdate = 
      dataTable.Select(null, null, DataViewRowState.ModifiedOriginal); 
+0

Как это работает? Разве ADO.NET запрашивает строку непосредственно перед ее обновлением? – Rookian

+0

ado.net проверяет состояние перед обновлением. Если строка была удалена, она больше не может получить к ней доступ –

Смежные вопросы