2017-04-17 3 views
-1

Ich versuche, Daten in MYSQL-Datenbank mit Asp.Net einzufügen, aber ich bekomme die folgende Fehlermeldung: Konnte keine Verbindung zur Datenbank aufgrund von System.InvalidOperationsException.The Verbindung muss gültig und offen sein. Hier ist, was ich tue:Wie man Daten in MySQL-Datenbank mit Asp.net einfügt

protected void SU_Button_Click(object sender, EventArgs e) 
     { 
      string connectionString = @"Data Source=mno; Database=xyz; User ID=abc; Password=abc"; 
      using (MySqlConnection connection = new MySqlConnection(connectionString)) 
      { 
       try 
       { 
        string insertData = "insert into signup_table(firstname,surname,mobile_number,email_address,password," + 
             "confirm_password) values (@F_Name, @S_Name, @M_Number, @E_Address, @Password, @C_Password)"; 
        MySqlCommand command = new MySqlCommand(insertData, connection); 

        command.Parameters.AddWithValue("@F_Name",FN_TextBox.Text); 
        command.Parameters.AddWithValue("@S_Name", SN_TextBox.Text); 
        command.Parameters.AddWithValue("@M_Number", MN_TextBox.Text); 
        command.Parameters.AddWithValue("@E_Address", EA_TextBox.Text); 
        command.Parameters.AddWithValue("@Password", P_TextBox.Text); 
        command.Parameters.AddWithValue("@C_Password", CP_TextBox.Text); 
        int result = command.ExecuteNonQuery(); 
        connection.Open(); 
        MessageBox.Show("Connected to database"); 
        MessageBox.Show("Data inserted successfully"); 
       } 
       catch(Exception ex) 
       { 
        MessageBox.Show("Failed to connect to database due to" + ex.ToString()); 
        MessageBox.Show("Failed to insert data due to" + ex.ToString()); 
       } 

      } 
     } 

Bitte etwas vorschlagen. Vielen Dank im Voraus ... :)

+1

Wie können Sie eine Abfrage ausführen, ohne zuerst die Verbindung zu öffnen? Es ist, als ob man ins Haus kommt, ohne die Tür zu öffnen. – Rahul

+0

Bereits korrigiert. Danke aber .. :) – Deep

+0

Ich bin nur neugierig, was war dein Denkprozess, als du diesen Fehler bekommen hast? Der Fehler besagt eindeutig, dass die Verbindung offen sein muss, und der Fehler wird vor Ihrer Leitung ausgelöst, um die Verbindung zu öffnen. – mason

Antwort

1

Sie müssen Ihre Verbindung öffnen, bevor Sie die Abfrage ausführen.

connection.Open(); 
    int result = command.ExecuteNonQuery(); 

vergessen Sie auch nicht, Ihre Verbindung zu schließen, nachdem Sie fertig sind.

+0

Thak du sehr, es hat funktioniert. Was für ein dummer Fehler das war. Und ich habe meine Verbindung mit einer using-Anweisung erstellt. Dies stellt sicher, dass das Verbindungsobjekt immer entsorgt wird, egal was kommt. Das bedeutet auch, dass ich die Verbindung nicht unbedingt schließen muss. – Deep

0

Änderung dieser

int result = command.ExecuteNonQuery(); 
connection.Open(); 

dieser

connection.Open(); 
    int result = command.ExecuteNonQuery(); 
Verwandte Themen