Member 13188160 Ответов: 1

Возникли трудности с сохранением datatable обратно в базу данных с нарушением параллелизма


Привет

Я получаю нарушение параллелизма в своей команде updatecommand, когда пытаюсь сохранить datatable обратно в базу данных. Я меняю один столбец примерно в 90% моих строк в таблице данных 4200 плюс строка. Я использую datatable, который имеет primarykey. Я также использую sqlitedatadapter.


Я буду признателен Вам за Вашу помощь
Штифтик

Что я уже пробовал:

fill the datatable with this:

<pre>sql = "SELECT * FROM Customers WHERE Status = 'Active'"
    ActiveCustomersAdapter = New SQLiteDataAdapter(sql, conn)
    ActiveCustomersAdapter.Fill(DTActiveCustomers)


Я заполняю таблицу, циклически меняю одно поле даты, добавляя переменную инкремента в столбец даты, а затем пытаюсь сохранить его обратно в базу данных с помощью:

Dim cbActiveCustomers As New SQLiteCommandBuilder(ActiveCustomersAdapter)
  conn.Open()                 ... forgot to show this
  ActiveCustomersAdapter.Update(DTActiveCustomers)
  conn.Close()                ... and this       thanks MadMyche



В базе данных нет одновременных пользователей и других действий. Я, очевидно, делаю что-то неправильно, но не нашел того, чего мне не хватает.
Я искал проблемы параллелизма, но большинство из них объясняют проблемы, которые конкретно не связаны. Я отбросил проект назад, чтобы ничего не делать, но:
1. откройте базу данных и заполните таблицу datatable
2. Измените поле примерно в 90% строк таблиц
3. сохраните таблицу обратно в базу данных

MadMyche

Где connection.Open()</code) and <code>.Close()

Richard Deeming

Не должно требоваться для DataAdapter - он будет открывать и закрывать соединение для вас автоматически.

1 Ответов

Рейтинг:
10

Member 13188160

Я нашел причину, начав с пустой базы данных, добавив каждый столбец и проверив его на изменение и сохранение после добавления каждого нового столбца. Все изменилось и сохранялось нормально, пока я не добавил столбец даты, и это вызвало ошибку параллелизма, хотя я не вносил никаких изменений в столбец. Поэтому я предполагаю (опасно, я знаю!), что между тем, когда sqliteadapter заполняет datatable из файла базы данных, и когда sqliteadapter обновляет базу данных из datatable, он думает, что дата была изменена, поэтому я посмотрю, как это сделать vb.net и sqlite обрабатывает даты.
Спасибо за Ваш вклад.
Штифтик