Heim  >  Artikel  >  Datenbank  >  Wie rufe ich die ID einer eingefügten Zeile mit C# ab?

Wie rufe ich die ID einer eingefügten Zeile mit C# ab?

DDD
DDDOriginal
2024-11-07 18:49:03794Durchsuche

How to Retrieve the ID of an Inserted Row using C#?

Abrufen des Bezeichners einer eingefügten Zeile mit C#

In einer Datenbanktabelle, die ein automatisch inkrementiertes „ID“-Feld enthält, wird die ID abgerufen einer kürzlich eingefügten Zeile erweist sich als wiederkehrende Aufgabe. Dies ist besonders wichtig für nachfolgende Vorgänge, die von der ID abhängig sind.

In Ihrem Fall hat der abgerufene ID-Wert trotz der Ausführung eines Einfügebefehls durchweg Null zurückgegeben. Diese Diskrepanz entsteht durch die Verwendung von ExecuteScalar, das die erste Spalte der ersten vom Befehl zurückgegebenen Zeile abruft. Da keine bestimmte Spalte projiziert wird, wird der Wert am ersten Index abgerufen. Allerdings werden automatisch inkrementierte IDs im Allgemeinen nach dem Einfügen des Befehls generiert, was dazu führt, dass die ID-Spalte zunächst nichts enthält.

Um dieses Problem zu beheben, sollten Sie Ihren Code wie folgt ändern:

MySqlCommand comm = connect.CreateCommand();
comm.CommandText = insertStatement;  // Set the insert statement
comm.ExecuteNonQuery();              // Execute the command
long id = comm.LastInsertedId;       // Get the ID of the inserted item

Der entscheidende Unterschied liegt in der Verwendung von ExecuteNonQuery, das gezielt die Einfügeanweisung ausführt, ohne einen Wert zurückzugeben. Anschließend ruft der Aufruf von LastInsertedId den generierten ID-Wert direkt ab.

Dieser Ansatz entspricht der Anforderung, die automatisch inkrementierte ID abzurufen, wodurch das bei ExecuteScalar auftretende Problem beseitigt wird.

Das obige ist der detaillierte Inhalt vonWie rufe ich die ID einer eingefügten Zeile mit 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