2017-02-13 7 views

Répondre

0

J'ai d'abord exclu qu'il n'y avait définitivement aucun moyen qu'un autre système ou utilisateur puisse mettre à jour l'enregistrement "sous" mon code causant le problème. J'ai alors exclu les types de données et l'arrondi ne causait pas le problème, car je comprends que les différences subtiles de la façon dont les différents systèmes traitent l'arrondi des flottants peuvent provoquer ce message d'erreur signalé.

J'ai ensuite exclu que les champs "nullables" ne posaient pas de problèmes.

Ce qu'il s'est réellement avéré être, était une erreur de ma propre fabrication dans ma procédure stockée. Bien qu'il semblait retourner toutes les données dont j'avais besoin pour charger l'ensemble de données typé, je n'avais pas inclus le champ de clé primaire, donc quand j'ai parcouru mon code, le champ principal avait une valeur de "-1". Je suppose que cela a causé quelques problèmes à l'adaptateur de données. Je suis surpris que l'erreur s'est manifestée comme un problème de concurrence. Je m'attendais à un message plus informatif pour essayer de mettre à jour un enregistrement sans une clé pour identifier l'enregistrement!

Correction de mon « sélectionner pour ID » procédure stockée pour retourner le champ ID ainsi que tous les plus intéressants champs résolu la question lorsque la méthode Update a été appelée sur l'adaptateur.