2010-02-02 5 views
0

У меня есть набор данных, который имеет измененные, вставленные и удаленные строки. Я отправляю dataset.GetChanges в мой MiddleTier, который, в свою очередь, отправляет его на сервер, который обновляет базу данных. Я использую GetChanges, поэтому я отправляю как можно меньше строк.Получение стабильного набора данных после обновления

Сервер обновляет, вставляет и удаляет строки только в порядке и отправляет обратно обновленный набор данных, который затем объединяю с локальным набором данных. Проблема в том, что я получаю дублированные добавленные/измененные строки, когда первичные ключи не совпадают. Поэтому, я думаю, я хочу вызвать RejectChanges после слияния, которое удалит все изменения влево (это будет дублирование). Проблема в том, что все удаленные строки все еще остаются в наборе данных. Слияние не удаляет удаленные строки, мне нужно вызвать AcceptChanges для этого. Поэтому мне нужно сделать Accept и RejectChanges, но это невозможно.

Есть ли хороший способ сделать это? Любые предложения о том, как решить эту проблему наилучшим образом?

Спасибо!

ответ

1

Если вы принимаете AcceptChanges в наборе данных перед отправкой изменений в набор данных среднего уровня, то следует позаботиться о себе (то есть обновить, удалить, добавить). таким образом, вам не нужно объединять изменения, поскольку ваш набор данных уже обновлен.

Вам также может потребоваться рассмотреть, что должно произойти, если и когда эти изменения на сервере потерпят неудачу.

Заканчивать MSDN статья DataSet:AcceptChanges Method

+0

Проблема заключается в том, что если я AcceptChanges, без слияния, я не получаю обновленные данные в моем локальном наборе данных (ключи и вещи, которые назначены в базе данных). –

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