Heim >Datenbank >MySQL-Tutorial >Wie rufe ich die eingefügte ID nach einem SQL-INSERT-Befehl in C# MVC 4 ab?

Wie rufe ich die eingefügte ID nach einem SQL-INSERT-Befehl in C# MVC 4 ab?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-17 01:42:13502Durchsuche

Abrufen der eingefügten ID nach einem SQL INSERT in C# MVC 4

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

In diesem Artikel wird gezeigt, wie Sie Daten mit C# in eine MVC 4-Anwendung einfügen und die ID des neu eingefügten Datensatzes abrufen. Während ExecuteNonQuery die Anzahl der betroffenen Zeilen angibt, erfordert das Erhalten der eingefügten ID einen anderen Ansatz.

Die einfachste Methode verwendet ExecuteScalar. Das Ergebnis muss jedoch explizit in eine Ganzzahl umgewandelt werden:

<code class="language-csharp">int modified = (int)cmd.ExecuteScalar();</code>

Nach erfolgreicher Ausführung speichert modified die neu generierte ID.

Für SQL Server 2005 und höher bietet die Nutzung des Schlüsselworts OUTPUT innerhalb der INSERT-Anweisung eine effizientere Lösung:

<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>

Für ältere SQL Server-Versionen bietet die Funktion SCOPE_IDENTITY() eine vergleichbare Alternative:

<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>

Diese Methoden stellen sicher, dass Sie unabhängig von Ihrer SQL Server-Version die ID des eingefügten Datensatzes genau abrufen. Denken Sie daran, potenzielle Ausnahmen in einer Produktionsumgebung angemessen zu behandeln.

Das obige ist der detaillierte Inhalt vonWie rufe ich die eingefügte ID nach einem SQL-INSERT-Befehl in C# MVC 4 ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn