Проблема DBConcurrencyException возникает при попытке использовать метод Update () в моей базе данных.У меня есть таблица в базе данных, в которой есть столбец идентификатора с автоинкрементом, и таблица данных в моей программе на c #, которая получает информацию из этой таблицы (включая часть с автоинкрементом, когда я использую MissingSchemaAction = MissingSchemaAction.AddWithKey).
Если я создаю строки и добавляю их в таблицу данных, таблица данных автоматически заполняет для меня столбец идентификатора с автоинкрементом (начиная с того места, где остановилась таблица базы данных), и это нормально.Однако, если я удаляю только что добавленные строки (без предварительного использования Update ()) и добавляю новые, столбец автоинкремента с датой заполняется значением, основанным на том, где находится DATATABLE, а не на том, где находится база данных, поэтому я получаюошибка параллелизма.
например:
Таблица в базе данных содержит следующие записи:
1 Apple
2 Orange
3 Pear
, которая копируется в таблицу данных, поэтому при добавлении новой строкисо значением name "grape" я получаю:
1 Apple
2 Orange
3 Pear
4 Grape
Это нормально, однако, если не запускается метод Update (), я удаляю строку с виноградом и добавляю новую строку "Melon". Iget:
1 Apple
2 Orange
3 Pear
5 Melon
И когда я пытаюсь запустить Update (), база данных ожидает, что 4 будет следующим автоинкрементным значением, но вместо этого получит 5. Так что я получаю ошибку.Update () происходит, когда пользователь нажимает кнопку «сохранить», поэтому в идеале я бы хотел, чтобы они могли внести множество изменений, как показано выше, перед окончательным сохранением, но это единственный способ сохранить параллелизм для использования Update () после добавления / удаления каждой строки?