Ein INSERT macht zwei Einträge, Warum ?



  • Hi,

    Hab da mahl eine Frage zum "INSERT INTO". Ich Benutze WinXP Prof u. VISTA Ultimate, als IDE VS2005 mit c# sowie MySQL5 als Datenbank.

    Mein Problem ist wenn ich im FormView einaml auf das Button "Add" klicke,
    wird nicht nur ein Eintrag in der Datenbank erstellt sondern zwei !

    Der Eventhandler von dem AddButton sieht so aus:

    private void BtnAdd_Click(object sender, EventArgs e)
    {
       // Create connection string for input data
       string strConnectionString = "SERVER=localhost;" +
                                    "DATABASE=test;" +
                                    "UID=root"; +
                                    "PASSWORD=xxxx;";
    
       MySqlConnection connection = new MySqlConnection(strConnectionString);
       MySqlCommand command = connection.CreateCommand();
    
       command.CommandText = "INSERT INTO terminTab (StartDate, EndDate, Titel, Color, Locked) 
                              VALUES('" + m_App.StartDate.ToString("yyyy-MM-dd HH:mm:ss") 
                              + "', '" + m_App.EndDate.ToString("yyyy-MM-dd HH:mm:ss") 
                              + "', '"strTitel.Text + "', '" + 1 + "', '" + 0 + "')";
    
       connection.Open();
       command.ExecuteNonQuery();
       int iLastIndex = Convert.ToInt32(command.ExecuteScalar());
       command.Dispose();
    
       connection.Close();
    }
    

    Nach einmaligen Aufruf habe ich aber, statt einen neuen Eintrag, gleich zwei neue mit
    unterschidlichen PrimaryKeys in meiner Tabelle.

    Warum , was mache ich den Falsch ?

    mfG
    Ratlos2



  • Ist zwar c# aber:

    Du rust ja auch 2 Mal

    Execute auf

    ExecuteNonQuery
    ExecuteScalar

    Somit 2 Inserts.
    Willst du den LASTINSERT haben dann musst du schon vor ExecuteScalar eine Select als Command machen.



  • Hallo Unix-Tom,

    Super Danke für Deine rasche Hilfe, jetzt funktioniert es.

    Manchmal Seh ich den Wald vor lauter Bäumen nicht.

    Danke!


Anmelden zum Antworten