Maison > base de données > tutoriel mysql > Comment récupérer l'ID d'un enregistrement nouvellement inséré dans SQL Server à l'aide de C# MVC 4 ?

Comment récupérer l'ID d'un enregistrement nouvellement inséré dans SQL Server à l'aide de C# MVC 4 ?

Linda Hamilton
Libérer: 2025-01-17 01:46:08
original
932 Les gens l'ont consulté

How to Retrieve the ID of a Newly Inserted Record in SQL Server using C# MVC 4?

Récupération de l'ID d'un enregistrement SQL Server nouvellement inséré avec C# MVC 4

Problème :

Comment insérer des données dans une table SQL Server à l'aide de C# dans une application MVC 4, puis obtenir l'ID de l'enregistrement nouvellement ajouté ?

Solution :

Il existe deux approches principales, selon votre version de SQL Server :

SQL Server 2005 et versions ultérieures :

La méthode la plus efficace pour SQL Server 2005 et les versions ultérieures exploite la clause OUTPUT :

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na, Mem_Occ) OUTPUT INSERTED.ID VALUES (@na, @occ)", con))
{
    // ... parameter assignments for @na and @occ ...
    int newId = (int)cmd.ExecuteScalar();
    return newId;
}</code>
Copier après la connexion

Cette unique instruction SQL insère les données et renvoie immédiatement l'ID nouvellement généré.

Anciennes versions de SQL Server (avant 2005) :

Pour les anciennes versions de SQL Server, vous avez besoin d'une requête en deux parties : une instruction INSERT suivie de SCOPE_IDENTITY() :

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na, Mem_Occ) VALUES (@na, @occ); SELECT SCOPE_IDENTITY();", con))
{
    // ... parameter assignments for @na and @occ ...
    int newId = Convert.ToInt32(cmd.ExecuteScalar());
    return newId;
}</code>
Copier après la connexion

Cette approche insère d'abord les données, puis utilise SCOPE_IDENTITY() pour récupérer l'ID de la dernière ligne insérée dans la session et la portée en cours. Notez que SCOPE_IDENTITY() ne fonctionne que pour la session et la portée en cours, donc si plusieurs insertions se produisent simultanément, vous pouvez obtenir des résultats inattendus.

N'oubliez pas de remplacer Mem_Basic, Mem_Na et Mem_Occ par les noms réels de vos tables et colonnes. Assurez-vous également d’un paramétrage approprié pour éviter les vulnérabilités d’injection SQL. Les sections // ... indiquent où vous devez ajouter votre code de paramétrage à l'aide de cmd.Parameters.AddWithValue(...).

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