2016-06-30 8 views
0

Когда я пытаюсь обновить базу данных с некоторыми измененными значениями в наборе данных, исключение совпадения не возникает, если я вручную меняю некоторые значения в базе данных после выполнения метода заполнения в наборе данных. (Я получаю исключение только в том случае, если я удаляю строку вручную, а затем пытаюсь вызвать метод обновления адаптера данных).Как проверить, изменилось ли значение строки базы данных, прежде чем делать заполнение в наборе данных

Как проверить, есть ли у меня «грязное чтение» в моем наборе данных ?.

+0

Пожалуйста, внесите свой код. –

+0

http://pastebin.com/wPXuhzVy Это то же самое, что и я ... Как проверить перед обновлением, если исходное значение строки отличается от текущего значения базы данных (Что называется «грязное чтение»)). Я думал, что просто получаю исключение, но похоже, что мое предположение неверно. – user3097132

+0

См. Мой ответ. Надеюсь, это поможет. –

ответ

0

У вас есть несколько вариантов.

  • Сохранение копии исходного набора сущностей для сравнения и сделать на загрязнен определение в точке вы должны знать, является ли это загрязнен.

  • Проверка свойства rowstate datarow и если модифицировано сравнение значений в Current и Original DataRowVersions. Если второе изменение делает значение таким же, как и оригинал, тогда вы можете вызвать RejectChanges, однако это отклонит все изменения в строке. Вам придется вручную отслеживать каждое поле, поскольку набор данных сохраняет только для каждой строки или для каждой таблицы.