Heim >Backend-Entwicklung >C++ >Wie erhalte ich die eingefügte ID nach einer SQL-Einfügung mit C# in 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.
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!