Maison > développement back-end > C++ > Comment récupérer les identifiants générés automatiquement après une INSERT SQL en C# ?

Comment récupérer les identifiants générés automatiquement après une INSERT SQL en C# ?

DDD
Libérer: 2025-01-17 21:56:11
original
425 Les gens l'ont consulté

How to Retrieve Auto-Generated IDs After an SQL INSERT in C#?

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

Cet article aborde un défi courant en programmation C# : récupérer efficacement l'ID généré automatiquement après l'insertion d'un nouvel enregistrement dans une base de données SQL Server. Nous explorerons plusieurs méthodes, en mettant en évidence leur compatibilité avec différentes versions de SQL Server.

Imaginez que vous insérez des données dans une table nommée "Mem_Basic" et que vous ayez besoin du "ID" nouvellement généré :

<code class="language-csharp">public class MemberBasicData
{
    public int Id { get; set; }
    public string Mem_NA { get; set; }
    public string Mem_Occ { get; set; }     
}

public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
    // ... (code to be added)
}</code>
Copier après la connexion

Une méthode utilise ExecuteScalar(), mais elle n'est pas toujours fiable dans toutes les versions de SQL Server :

<code class="language-csharp">int modified =(int)cmd.ExecuteScalar(); //Potentially unreliable in older SQL Server versions</code>
Copier après la connexion

Pour SQL Server 2005 et versions ultérieures, la clause OUTPUT fournit une solution robuste :

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

Cependant, pour les anciennes versions de SQL Server (avant 2005), SCOPE_IDENTITY() propose une alternative fiable :

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

Ces méthodes garantissent que les développeurs peuvent récupérer systématiquement l'ID généré automatiquement après une opération SQL INSERT, améliorant ainsi la gestion des données dans les applications C#.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal