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());
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;
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!