Четверг Мая 17 , 2012
TEXT_SIZE
   


Реинтеграция изменений

Просмотрев измененную запись и успешно передав ожидающее изменение в БД. объект DataSet помечает эту запись как не содержащую ожидающих изменений. Таким образом, исключается многократная передача одного и того же изменения при повторных вызовах метода Update. Ранее я рассказал о методе GetCbanges класса DataSet. Код формы использует объект DataSet, возвращенный методом GetCbanges, при вызове метода Update объекта DataAclapter. После внесения обновлений объект DataSet помечает соответствующие записи объекта objDataSet(hanges как успешно обновившие БД.

Тем не менее объект objDataSet(hanges стоит отдельно от основного объекта DataSet формы. Нам нужно как-то объединить изменения, сделанные объектами DataAdapter в объекте objDataSetChanges, и внести их в основной объект DataSet. У класса DataSet имеется метод Merge, позволяющий объединять данные из двух объектов DataSet. Если записи объектов DataSet различаются, ADO.

NET просто помещает все записи в тот объект, метод Merge которого вы вызвали. В нашем случае записи объекта objDataSet(hanges ссылаются на те же данные, что и основной объект DataSet. Нам нужно, чтобы соответствующие записи основного объекта DataSet были перезаписаны записями объекта objDataSet(hanges. ADO. NET сравнивает значения основного ключа, хранящиеся в записях, и определяет, какие же записи ссылаются на один и тот же ряд данных. По умолчанию ADO.

NET перезаписывает ряд того объекта DataSet, метод Merge которого вы вызвали, Таким образом, изменения, вносимые объектами DataAdapter в объекты dsDelta DataSet, передаются основному объекту DataSet, и мы можем успешно обрабатывать последующие обновления.

Добавить комментарий


Защитный код
Обновить

Рейтинг пользователей: / 0
ХудшийЛучший 

Метео

Войти

Голосование

Идеальный вариант проведения новогодней корпоративной вечеринки - это…

Сейчас на сайте

Сейчас 6 гостей онлайн