Heim >Backend-Entwicklung >C++ >Wie rufe ich automatisch generierte IDs nach einem SQL INSERT in C# ab?

Wie rufe ich automatisch generierte IDs nach einem SQL INSERT in C# ab?

DDD
DDDOriginal
2025-01-17 21:56:11381Durchsuche

How to Retrieve Auto-Generated IDs After an SQL INSERT in C#?

Abrufen automatisch generierter IDs nach SQL INSERT in C#

Dieser Artikel befasst sich mit einer häufigen Herausforderung bei der C#-Programmierung: dem effizienten Abrufen der automatisch generierten ID nach dem Einfügen eines neuen Datensatzes in eine SQL Server-Datenbank. Wir werden verschiedene Methoden untersuchen und ihre Kompatibilität mit verschiedenen SQL Server-Versionen hervorheben.

Stellen Sie sich vor, Sie fügen Daten in eine Tabelle mit dem Namen „Mem_Basic“ ein und benötigen die neu generierte „ID“:

<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 )
{
    // ... (code to be added)
}</code>

Eine Methode verwendet ExecuteScalar(), aber dies ist nicht immer zuverlässig in allen SQL Server-Versionen:

<code class="language-csharp">int modified =(int)cmd.ExecuteScalar(); //Potentially unreliable in older SQL Server versions</code>

Für SQL Server 2005 und höher bietet die OUTPUT-Klausel eine robuste 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))
{
    // ... (rest of the code) 
}</code>

Für ältere SQL Server-Versionen (vor 2005) bietet SCOPE_IDENTITY() jedoch eine zuverlässige 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))
{
    // ... (rest of the code) 
}</code>

Diese Methoden stellen sicher, dass Entwickler die automatisch generierte ID nach einem SQL-INSERT-Vorgang konsistent abrufen können, wodurch die Datenverwaltung in C#-Anwendungen verbessert wird.

Das obige ist der detaillierte Inhalt vonWie rufe ich automatisch generierte IDs nach einem SQL INSERT 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