J'utilise un dbdataadapter comme expliqué ici : http://www.dotnetspider.com/resources/4467-Multiple-Inserts-Single-Round-trip-using-ADO-NET-Batch-Update.aspx afin d'enregistrer les données d'un datatable dans une base de données SQL server.
J'ai constamment une violation de contrainte de clé étrangère quand le champ contenant la clé accepte la valeur NULL, et ce quand je passe un identifiant existant. lorsque j'utilise la valeur NULL, je me retrouve avec une valeur (le chiffre 1 sur mes test) en lieu et place de la valeur NULL. je précise que toutes les données sont enregistré en même temps au cours de la même transaction. (la base est vide au début)
Dès que je supprime la possibilité d'insérer NULL dans le champ, mon code fonctionne parfaitement et les données sont bien enregistrées en base. Est-ce un problème commun du dataadapter ? j'ai beau eu chercher sur différent forums, je n'ai rien trouvé me permettant de corriger ce problème.
bon, problème résolu, je pensais à tort qu'un datatable gérait les type nullable, mais le problème principal vient du fait que j'utilisais le paramètre SourceColumnNullMapping pour les dbparameter de mon sqlcommand. celui ci convertissait toutes les valeurs null en 1 et les autres valeurs était constamment à zéro.
Marqué comme réponsetherealgantzmardi 19 janvier 2010 09:02