Salut à tous !
Ce petit message, car je suis en train de me demander si je n'ai pas omis quelque chose dans le paramétrage de mon DataSet (BaseDossier.xsd). J'aimerais votre avis & vos conseils, car, malgré mes recherches, je ne vois pas quel est mon erreur.
Avant tout, sachez que mon DataSet est interfacé avec un base de données SQL Server possédant une table « Dossier » ayant pour identifiant la colonne « id », définie sur « Auto_Increment ».
Le problème se pose dans mon TableAdapter nommé « Dossier », qui possède une méthode nommée « CreateDossier() » dont voici le code :
Pour qu'elle me retourne bien l'identifiant du dossier nouvellement créée, je choisi le mode d'exécution « Scalar() », ce qui marche bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Insert Into Dossier (nom, createur, datecreation) Values (@name, @creator, @creationDate); Select Scope_Identity(); // Retourne l'identifiant nouvellement inséré.
Cependant, à chaque modification sur mon TableAdapter (même si elle ne concerne pas ma méthode « CreateDossier() »), le mode d'exécution repasse silencieusement en « NonQuery() ». Celà ne génère aucune erreur de compilation, mais au lieu de me retourner ce que j’attends, elle me retourne tout le temps « 1 » (le nombre de lignes affectées par mon enregistrement)...
Au final, dans mon code, celà peut me conduire à de graves erreurs d'incohérence de données.
- Auriez-vous une idée pour savoir comment résoudre ce discret mais génant problème ?
Voici un topic sur StackOverflow d'un individu signalant le même problème, mais sans réponse probantes.
Partager