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

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

Patricia Arquette
Libérer: 2025-01-17 01:42:13
original
501 Les gens l'ont consulté

Récupération de l'ID inséré après une INSERT SQL en C# MVC 4

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

Cet article montre comment insérer des données en utilisant C# dans une application MVC 4 et récupérer l'ID de l'enregistrement nouvellement inséré. Alors que ExecuteNonQuery indique le nombre de lignes concernées, l'obtention de l'ID inséré nécessite une approche différente.

La méthode la plus simple utilise ExecuteScalar. Cependant, le résultat doit être explicitement converti en un entier :

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

Après une exécution réussie, modified conservera l'ID nouvellement généré.

Pour SQL Server 2005 et versions ultérieures, l'utilisation du mot-clé OUTPUT dans l'instruction INSERT fournit une solution plus efficace :

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))
{
    cmd.Parameters.AddWithValue("@na", Mem_NA);
    cmd.Parameters.AddWithValue("@occ", Mem_Occ);
    con.Open();

    int modified = (int)cmd.ExecuteScalar();

    if (con.State == System.Data.ConnectionState.Open) con.Close();

    return modified;
}</code>
Copier après la connexion

Pour les anciennes versions de SQL Server, la fonction SCOPE_IDENTITY() propose une alternative comparable :

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))
{
    cmd.Parameters.AddWithValue("@na", Mem_NA);
    cmd.Parameters.AddWithValue("@occ", Mem_Occ);
    con.Open();

    int modified = Convert.ToInt32(cmd.ExecuteScalar());

    if (con.State == System.Data.ConnectionState.Open)
        con.Close();

    return modified;
}</code>
Copier après la connexion

Ces méthodes garantissent que vous récupérez avec précision l'ID de l'enregistrement inséré, quelle que soit la version de votre SQL Server. N'oubliez pas de gérer les exceptions potentielles de manière appropriée dans un environnement de production.

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