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
Patricia Arquetteoriginal
2025-01-17 01:42:13502parcourir

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>

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>

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>

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!

Déclaration:
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