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