Heim > Datenbank > MySQL-Tutorial > Warum gibt mein C#-Code für die eingefügte Zeilen-ID immer 0 zurück?

Warum gibt mein C#-Code für die eingefügte Zeilen-ID immer 0 zurück?

Susan Sarandon
Freigeben: 2024-11-07 13:47:02
Original
701 Leute haben es durchsucht

Why Does My C# Code Always Return 0 for the Inserted Row ID?

Eingefügte Zeilen-ID effektiv in C# abrufen

Bei der Arbeit mit Datenbankoperationen ist die Erfassung der eindeutigen Kennung einer eingefügten Zeile von entscheidender Bedeutung. Dies gilt insbesondere, wenn Sie das nächste Segment Ihres Codes erstellen. Es kann jedoch frustrierend sein, einen konsistenten Rückgabewert von 0 zu erhalten, obwohl die tatsächliche ID einen Wert ungleich Null hat.

Lassen Sie uns näher auf das Problem eingehen, mit dem Sie konfrontiert sind. Der bereitgestellte C#-Code versucht, die ID einer eingefügten Zeile abzurufen, gibt jedoch immer 0 zurück. Dieses Verhalten ist auf ein Versehen bei der Codeausführung zurückzuführen.

Der Kern des Problems liegt in der folgenden Zeile:

int id = Convert.ToInt32(comm.ExecuteScalar());
Nach dem Login kopieren

Während die ExecuteScalar-Methode einen einzelnen Wert aus der ausgeführten Abfrage abrufen kann, ist es wichtig zu beachten, dass sie nicht automatisch die ID der eingefügten Zeile zurückgibt. Das Problem tritt auf, wenn Sie versuchen, den zurückgegebenen Wert mit Convert.ToInt32 in einen int-Wert umzuwandeln. Diese Umwandlung kann zu falschen Konvertierungen führen, was zur Rückgabe von 0 führt.

Um diese Situation zu beheben, müssen wir ExecuteScalar durch ExecuteNonQuery ersetzen. Diese Funktion ist für die Ausführung einer Nicht-Abfrageanweisung verantwortlich, beispielsweise einer Einfügeoperation. Nach der erfolgreichen Ausführung der Einfügeanweisung können Sie die LastInsertedId-Eigenschaft des MySqlCommand-Objekts nutzen, um die ID der neu erstellten Zeile abzurufen:

MySqlCommand comm = connect.CreateCommand();
comm.CommandText = insertStatement;
comm.ExecuteNonQuery();
long id = comm.LastInsertedId;
Nach dem Login kopieren

Durch Implementierung dieser Anpassung können Sie effektiv die ID von abrufen die eingefügte Zeile, um einen nahtlosen Übergang zur nächsten Phase der Codeausführung sicherzustellen.

Das obige ist der detaillierte Inhalt vonWarum gibt mein C#-Code für die eingefügte Zeilen-ID immer 0 zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage