2017-02-13 3 views
0

После долгого времени от .Net типизированных наборов данных, я должен был работать на наследство проекта, и я упал в немилостьОшибка: Нарушение Параллелизм: UpdateCommand влияние 0 ожидаемых 1 записей

Error: Concurrency violation: the UpdateCommand affected 0 of the expected 1 records

при попытке загрузить одну запись по идентификатору, а затем обновить одно поле в этой записи.

ответ

0

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

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

Я тогда исключил, что поля «nullable» не вызывали проблем.

То, что на самом деле оказалось, было ошибкой моего собственного изготовления в моей хранимой процедуре. Хотя мне кажется, что возвращались все данные, необходимые для загрузки типизированного набора данных, я не включил поле первичного ключа, поэтому, когда я прошел через свой код, основное поле имело значение «-1».

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

исправляющие мой «выберите для ID» хранимая процедура возвращает поле идентификатора, а также все более интересных полей решен вопрос, когда метод Update был вызван на адаптере.

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