7
votes

ID incorrect est renvoyé après l'insertion à l'aide de TableAdapter

Lorsque j'effectue un insert avec Tableadapter : xxx

Il renvoie l'identifiant incorrect 1 pendant qu'il devrait renvoyer 15.

Comment Obtenez le bon identifiant?


2 commentaires

Veuillez reformater votre question pour en faire une question et la rendre lisible.


C'est une question maintenant :)


4 Réponses :


7
votes

L'adaptateur de table renvoie le nombre de lignes concernées non l'ID.


3 commentaires

Ce n'est pas vraiment un problème, c'est par conception :-)


Il devrait y avoir un moyen rond pour cette "fonctionnalité"


Quel serait l'insertion à revenir lorsque plusieurs lignes ont été insérées? Comment la méthode d'insertion «savoir» quelle colonne contient l'ID que vous recherchez? En d'autres termes: suivez les liens dans les autres réponses et voyez comment les autres gèrent cela.



13
votes

Définissez la propriété en mode exécuté sur scalaire , alors vous obtenez l'identifiant , sinon les rangées affectées. Vous définissez la fenêtre Propriétés de la propriété de la requête non dans l'assistant de requête.

text alt

(fig 28)


1 commentaires

Sachez que (comme indiqué dans l'article), vous devez toujours modifier la requête d'insertion pour que cela puisse renvoyer l'identité demandée.



1
votes

Je suppose que vous avez une colonne PID avec une valeur autogénérée.

Le Répondre à ce message a la réponse. P>

select @@pid 


2 commentaires

PID est acheté avec une valeur ajoutée


Parler de la nature circulaire de la vie; J'étais celui qui a écrit cette réponse.



1
votes

1) La procédure stockée:

Le corps de votre procédure stockée doit être similaire à celui-ci: xxx

la partie importante ici est d'utiliser Sélectionnez SELECT SCPORTY_Identity () et non retour Scope_Dentiment (). EDIT: L'utilisation de return fonctionnera si vous appelez une fonction à la place d'une procédure stockée.

2) L'adaptateur de table:

Cliquez avec le bouton droit de la souris sur votre table Adaptateur et sélectionnez Ajouter une requête dans le menu contextuel. L'assistant de configuration de la requête de table TableAdametteur POPS-UP:

  • Choisissez un type de commande: Sélectionnez "Utiliser la procédure stockée existante".

  • Choisissez la forme des données renvoyées par le SP: Sélectionnez "Une valeur unique".

  • Entrez un nom approprié pour la méthode, par exemple. insertxyz

    3) Votre code:

    maintenant, lorsque vous appelez la méthode inserxyz sur votre adaptateur de table, il retournera un objet que vous pouvez lancer vers int32. Cette valeur est l'identifiant du nouvel enregistrement!


0 commentaires