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

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

Linda Hamilton
Linda HamiltonOriginal
2025-01-17 01:36:09662Durchsuche

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

Abrufen automatisch generierter IDs nach SQL INSERT in C#

Beim Hinzufügen von Daten zu einer SQL Server-Tabelle über C# ist das Abrufen der automatisch generierten ID des neuen Eintrags eine häufige Anforderung. In diesem Tutorial werden zwei Methoden demonstriert: die Verwendung der OUTPUT-Klausel (SQL Server 2005 und höher) und der SCOPE_IDENTITY()-Funktion (ältere Versionen).

Methode 1: OUTPUT Klausel (SQL Server 2005 und höher)

Die OUTPUT-Klausel bietet eine direkte Möglichkeit, die Spalte anzugeben, die die ID enthält:

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) OUTPUT INSERTED.ID VALUES(@na,@occ)", con))</code>

Hier gibt INSERTED.ID in der OUTPUT-Klausel die ID der neu eingefügten Zeile zurück.

Methode 2: SCOPE_IDENTITY() Funktion (ältere SQL Server-Versionen)

Für ältere SQL Server-Versionen ruft SCOPE_IDENTITY() die ID der zuletzt eingefügten Zeile im aktuellen Bereich ab:

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ); SELECT SCOPE_IDENTITY();", con))</code>

Diese Abfrage fügt die Daten ein und verwendet dann SCOPE_IDENTITY() in einer separaten SELECT-Anweisung, um die ID zu erhalten.

Zugriff auf die ID

Bei beiden Methoden wird auf die generierte ID mit ExecuteScalar() und Typumwandlung zugegriffen:

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

Diese Technik gewährleistet einen effizienten Abruf der neu eingefügten Datensatz-ID und bietet Kompatibilität zwischen verschiedenen SQL Server-Versionen.

Das obige ist der detaillierte Inhalt vonWie rufe ich die eingefügte ID nach einem SQL-INSERT-Befehl in C# 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