2016-05-10 15 views
0

Ich möchte eine Verbindung mit MySQL herstellen, aber es funktioniert nicht!Warum funktioniert meine: MySQL-Verbindung nicht?

Der Fehler, die ich erhalten: Unbehandelte Ausnahme:

System.InvalidOperationException: Der Anschluss muss gültig und offen sein.

Dies ist mein Code:

protected override void OnCreate(Bundle savedInstanceState) 
{ 
    base.OnCreate(savedInstanceState); 

    // Set our view from the "recepten" layout resource 
    SetContentView(Resource.Layout.register); 

    // Create your application here 
    Button back = FindViewById<Button>(Resource.Id.backToLog); 
    Button maak = FindViewById<Button>(Resource.Id.maakAccount); 
    TextView naam = FindViewById<TextView>(Resource.Id.naam); 
    TextView email = FindViewById<TextView>(Resource.Id.email); 
    TextView ww = FindViewById<TextView>(Resource.Id.wachtwoord); 
    TextView created = FindViewById<TextView>(Resource.Id.succes); 

    back.Click += delegate { StartActivity(typeof(login1)); }; 

    maak.Click += delegate 
    { 
     MySqlConnection con = new MySqlConnection("Server=db4free.net;Port=3306;database=foodproftaak;User Id=sanderenniek;Password=***;charset=utf8"); 

     try 
     { 
      if (con.State == ConnectionState.Closed) 
      { 
       con.Open(); 
       MySqlCommand cmd = new MySqlCommand("INSERT INTO register(naam, wachtwoord, email) VALUES(@naam, @wachtwoord, @email)", con); 
       cmd.Parameters.AddWithValue("@naam", naam); 
       cmd.Parameters.AddWithValue("@wachtwoord", ww); 
       cmd.Parameters.AddWithValue("@email", email); 
       cmd.ExecuteNonQuery(); 
       created.Text = "You succesfully created an account"; 
      } 
     } 
     catch (MySqlException ex) 
     { 
      created.Text = ex.ToString(); 
     } 
     finally 
     { 
      con.Close(); 
     } 
    }; 
} 

Mit freundlichen Grüßen

Sander

+0

Bitte schreiben Sie keine Bilder von Code. Manche Leute können sie nicht sehen. Außerdem erklären Sie nicht, was "nicht funktioniert". Erhalten Sie eine Ausnahme? –

Antwort

0

Es scheint, dass Sie nicht die Verbindung mit dem Befehl Objekt zugeordnet haben. Nachdem Sie Ihre MySqlCommand Objekt erstellen, um die Verbindung zuweisen:

cmd.Connection = con; 

Alternativ können Sie die Verbindung in geben, wenn Sie die MySqlCommand-Objekt erstellen:

MySqlCommand cmd = new MySqlCommand("INSERT INTO register(naam, wachtwoord, email) VALUES(@naam, @wachtwoord, @email)", con); 
Verwandte Themen