Rückgabewert?!



  • Beim Eintrag in die DB wird dem neuen Datensatz eine ID zugewiesen (AutoIncrement). Nun möchte ich gerne diesen Wert abfangen, damit ich mit diesem weiter arbeiten kann.

    Wie muss dazu mein mein Code (C#) aussehen, also das SQL Statement und dann einen ExecuteScalar??

    thx



  • Evtl. kennt bereits die ADO.NET Schnittstelle eine geeignete Funktion. Hier am Beispiel mit MySQL (Connector/NET Version 5.x):

    using (MySqlCommand command = mySqlConnection.CreateCommand()) {
        command.CommandText = "INSERT INTO ...";
        if (command.ExecuteNonQuery() > 0)
            object id = command.LastInsertId;
    }
    

    Ansonsten mit dem entsprechenden SQL-Befehl (ist aber auch nicht Datenbankunabhängig! Auch hier wieder MySQL)

    using (MySqlCommand command = mySqlConnection.CreateCommand()) {
        command.CommandText = "INSERT INTO ...";
        if (command.ExecuteNonQuery() > 0) {
            command.CommandText = "SELECT LAST_INSERT_ID()";
            object id = command.ExecuteScalar();
        }
    }
    

Log in to reply