Member 11561472 Ответов: 3

Как исправить нарушение параллелизма?


Я использую Visual Studio 2013 и создаю свой проект в VB.Net-да. У меня есть простой vb.net форма с тремя текстовыми полями, привязанными к источнику данных базы данных Access. (У базы данных есть первичный ключ.) Нарушение параллелизма происходит, когда я запускаю проект, добавляю запись и сохраняю ее, изменяю ту же запись и затем сохраняю ее. Полное сообщение об ошибке гласит::

Нарушение параллелизма: команда UpdateCommand затронула 0 из ожидаемых 1 записей. Включите логику в свое приложение для обработки нарушений параллелизма.

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

Maciej Los

Недостаточно информации...

3 Ответов

Рейтинг:
8

Member 11561472

Поскольку мое приложение является однопользовательским приложением, нет никаких оснований для проверки кода на наличие проблем параллелизма, когда пользователь сохраняет внесенные им изменения в запись в базе данных. Поэтому я просто использую В Резюме Об Ошибке Следующий в бланке есть Сохранить событие, чтобы избежать раздражающего сообщения об ошибке параллелизма.

Сообщение об ошибке параллелизма возникало в моем приложении, когда пользователь вводил данные в форму, затем сохранял изменение, а затем изменял ту же самую запись, а затем сохранял ее снова. Очевидно, что если один и тот же пользователь вносит изменения в только что сохраненную запись, он хочет сохранить обновленную запись, и проблема параллелизма отсутствует.


Member 13246482

Спасибо, что выложили свое исправление. У меня была та же проблема, и ваше решение устранило и мою проблему. Еще раз спасибо, что нашли время опубликовать исправление.

Рейтинг:
13

Member 11561472

Я - оригинальный плакат вопроса о параллелизме. Вот как я решил проблему нарушения параллелизма в своем приложении. Это может быть неуместно в других приложениях. Но это может помочь другим новым пользователям.

Мое приложение предназначено для одного пользователя. Поэтому никогда не будет случая, когда два пользователя попытаются изменить запись в таблице базы данных одновременно. Так что мне не нужно ловить нарушения параллелизма. Ошибка нарушения параллелизма была вызвана в моем приложении, когда я ввел данные, сохранил запись, а затем изменил запись и сохранил ее снова. Было неприятно, когда программа выдавала ошибку, когда не было ситуации, когда два пользователя меняли одну и ту же запись. Я вносил изменения в то, что только что ввел, и это то, что я хотел.

'Save Changes to Records
   Private Sub TblAssetDataBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles TblAssetDataBindingNavigatorSaveItem.Click
       Me.Validate()
       Me.TblAssetDataBindingSource.EndEdit()
       Me.TableAdapterManager.UpdateAll(Me.AssetDatabaseDataSet)
       Me.TblAssetDataTableAdapter.Fill(Me.AssetDatabaseDataSet.tblAssetData)

   End Sub


Рейтинг:
1

Maciej Los

Пожалуйста, прочтите мой комментарий к этому вопросу.

MSDN писал:
Исключения параллелизма (DBConcurrencyException) возникают, когда два пользователя пытаются изменить одни и те же данные в базе данных одновременно. В этом пошаговом руководстве вы создадите приложение Windows, которое иллюстрирует перехват исключения DBConcurrencyException, поиск строки, вызвавшей ошибку, и одну стратегию, которую вы можете использовать для ее обработки.


источник: Пошаговое руководство: обработка исключения параллелизма[^]

Смотреть также: Нарушение параллелизма: команда UpdateCommand затронула 0 из ожидаемых 1 записей.[^]