Heim >Backend-Entwicklung >C++ >Wie erhalte ich die eingefügte ID nach einer SQL-Einfügung mit C# in MVC 4?

Wie erhalte ich die eingefügte ID nach einer SQL-Einfügung mit C# in MVC 4?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-17 22:05:13881Durchsuche

How to Get the Inserted ID After an SQL Insert Using C# in MVC 4?

Abrufen der neu eingefügten ID nach einem SQL-Einfügevorgang in C# (MVC 4)

In diesem Artikel wird gezeigt, wie Sie mit C# innerhalb einer MVC 4-Anwendung Daten in eine SQL Server-Tabelle einfügen und gleichzeitig die ID des neu eingefügten Datensatzes erhalten.

Codebeispiel: Daten einfügen und ID abrufen

Der folgende Codeausschnitt veranschaulicht, wie dies mit zwei verschiedenen Ansätzen erreicht werden kann:

Methode 1: Verwendung von SCOPE_IDENTITY() (Geeignet für SQL Server 2005 und höher)

<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 )
{
    using (SqlConnection con = new SqlConnection(Config.ConnectionString))
    {
        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 newId = Convert.ToInt32(cmd.ExecuteScalar());

            if (con.State == System.Data.ConnectionState.Open) con.Close();
            return newId;
        }
    }
}</code>

Methode 2: Verwendung der OUTPUT-Klausel (SQL Server 2005 und höher)

Diese Methode wird im Allgemeinen wegen ihrer Klarheit und Effizienz bevorzugt.

<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 newId = (int)cmd.ExecuteScalar();

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

    return newId;
}</code>

Beide Methoden erzielen das gleiche Ergebnis: Daten einfügen und die neu generierte ID zurückgeben. Die OUTPUT-Klausel gilt im Allgemeinen als effizienter und lesbarer. Denken Sie daran, Config.ConnectionString durch Ihre tatsächliche Verbindungszeichenfolge zu ersetzen.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die eingefügte ID nach einer SQL-Einfügung mit C# in MVC 4?. 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