Asp.net - récupérer l'id d'un élément lors d'une insertion sous sql server

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 476 fois - Téléchargée 34 fois

Contenu du snippet

Un soucis très courant en SQL est la récupération d'un ID (champs automatique et Unique avec Incrément), lors d'un INSERT. En effet, cette valeur peut être utilisée dans une suite de requettes suivant celle de l'insertion.

Sous ASP, ceci se faisait avec Un Recordset comme expliqué au bas de cette page :
- http://www.asp-php.net/scripts/asp-php/astuces.php

En revanche sous ASP.NET, les Recordset n'existant plus, une autre méthode est conseillée, qui revient à exécuter une requette manuelle en TSQL.

Source / Exemple :


' La Table en exemple contient 3 champs : ID, Nom, Prenom

SQLUpdatePersonne = "INSERT INTO AN.Personne " & _
 "(Nom, Prenom) VALUES ( '" & _
 MaVariableNom & "', '" & _
 MaVariablePreNom & "', '" & _
 ");"

SQLUpdatePersonne &= "DECLARE @ID int;"
SQLUpdatePersonne &= "SET @ID = @@IDENTITY;"
SQLUpdatePersonne &= "SELECT @ID;"

ValeurID = MaConnexion.ExecuteScalar(SQLUpdatePersonne)

' La valeur contenue dans ValeurID est le Numéro de l'Id du nouvel Utilisateur

Conclusion :


Il est à noté que le Declare @ID et SET @ID = @@IDENTITY; , ne sont pas obligatoires, on peut faire directement un SELECT @@IDENTITY; en fin.

Bon Coding.

Romelard Fabrice (Alias F___)

A voir également

Ajouter un commentaire

Commentaires

cs_Yopyop
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1 -
Ne vaut-il pas mieux utiliser SCOPE_IDENTITY ?
molkin
Messages postés
8
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
29 juillet 2005
-
C dommage faire un Dataset et la menière la plus rapide de faire des inserion de base donnée, mais je n'ai pas réussi a trouver le moyen de lancer la requete : @@IDENTITY.

Il m'a fallu recoder toute la partie d'ajout de Row dans la database...

Mais si kk'un a une idée....

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.