Maison > base de données > tutoriel mysql > Comment récupérer l'ID inséré après une commande SQL INSERT en C# ?

Comment récupérer l'ID inséré après une commande SQL INSERT en C# ?

Linda Hamilton
Libérer: 2025-01-17 01:36:09
original
660 Les gens l'ont consulté

How to Retrieve the Inserted ID After an SQL INSERT Command in C#?

Récupération des identifiants générés automatiquement après SQL INSERT en C#

Lors de l'ajout de données à une table SQL Server via C#, l'obtention de l'ID généré automatiquement de la nouvelle entrée est une exigence courante. Ce didacticiel présente deux méthodes : en utilisant la clause OUTPUT (SQL Server 2005 et versions ultérieures) et la fonction SCOPE_IDENTITY() (anciennes versions).

Méthode 1 : OUTPUT Clause (SQL Server 2005 et versions ultérieures)

La clause OUTPUT fournit un moyen direct de spécifier la colonne contenant l'ID :

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))</code>
Copier après la connexion

Ici, INSERTED.ID dans la clause OUTPUT renvoie l'ID de la ligne nouvellement insérée.

Méthode 2 : SCOPE_IDENTITY() Fonction (anciennes versions de SQL Server)

Pour les anciennes versions de SQL Server, SCOPE_IDENTITY() récupère l'ID de la ligne la plus récemment insérée dans la portée actuelle :

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))</code>
Copier après la connexion

Cette requête insère les données puis utilise SCOPE_IDENTITY() dans une instruction SELECT distincte pour obtenir l'ID.

Accès à l'identifiant

Dans les deux méthodes, l'ID généré est accessible à l'aide de ExecuteScalar() et du transtypage :

<code class="language-csharp">int newId = (int)cmd.ExecuteScalar();</code>
Copier après la connexion

Cette technique garantit une récupération efficace de l'ID de l'enregistrement nouvellement inséré, offrant une compatibilité entre les différentes versions de SQL Server.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal