Перехват и обработка нарушений параллелизма в TableAdapter - PullRequest
0 голосов
/ 16 августа 2011

Я использую TableAdapter для подключения к моей таблице базы данных.

Когда я выполняю Update, и кто-то еще обновил эту же строку, я получаю ошибку нарушения параллелизма.Как и ожидалось.

Итак, на этом этапе я даю пользователю возможность сохранить независимо или отменить изменения

Если они отменяются, я могу просто выполнить Fill, чтобы получить обновленную копию данных, но что еслиони хотят перезаписать?Как мне на самом деле принудительно сохранить данные, перезаписывая данные, хранящиеся в базе данных?

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Если вы используете SQLCommandBuilder для генерирования ваших операторов обновления, тогда установите CommandBuilder.ConflictOption = ConflictOption.OverwriteChanges;а затем снова выполните обновление ().

0 голосов
/ 19 июля 2012

Щелкните правой кнопкой мыши адаптер таблицы, выберите «Редактировать запросы в конструкторе наборов данных».

В окне конструктора набора данных выберите TableAdapter и перейдите в его Свойства.

В свойствах разверните Оператор обновления и перейдите в свойство CommandText. В команде обновления, где условие, удалите все условия и оставьте только столбец первичного ключа. например:

UPDATE customer
SET column1 = @column1, column2 = @column2
WHERE pk_column = @pk_column

Теперь исключение параллелизма больше не появится, поскольку этот запрос перезапишет данные, основанные только на первичном ключе.

...