C # mit MySQL INSERT-Parametern

Guten Tag an alle, ich verwende Visual C # 2010 und MySQL Version 5.1.48-Community. Ich hoffe, Sie können mir mit diesem Code helfen. Ich finde es nicht gut für mich. Was vermisse ich?

string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString;
MySqlConnection conn = new MySqlConnection(connString);
conn.Open();
MySqlCommand comm = conn.CreateCommand();
comm.CommandText = "INSERT INTO room(person,address) VALUES(@person, @address)";
comm.Parameters.Add("@person", "Myname");
comm.Parameters.Add("@address", "Myaddress");
comm.ExecuteNonQuery();
conn.Close();

Und wenn ich versuche, es zu kompilieren. Es sagt:

Die Personenspalte darf nicht null sein

BEARBEITET:

Aber wenn ich diesen Code probiere.

comm.CommandText = "INSERT INTO room(person,address) VALUES('Myname', 'Myaddress')";

Aber dieser Code ist anfällig für SQL-Injection-Angriffe, aber er funktioniert, gibt mir keinen Fehler.

BEARBEITET:

Ich habe versucht, dies zu nutzen. ich habe es gefundenHier Also dachte ich, es würde funktionieren, aber es gibt mir diesen Fehler

Index (nullbasiert) muss größer oder gleich null und kleiner als die Größe der Argumentliste sein.

Irgendeine Idee?

    string a = "myname";
    MySqlCommand cmd = new MySqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = "INSERT INTO room(person,address) VALUES(?,?)";
    //cmd.Prepare();

    cmd.Parameters.Add("person", MySqlDbType.VarChar).Value = a;
    cmd.Parameters.Add("address", MySqlDbType.VarChar).Value = "myaddress";
    cmd.ExecuteNonQuery(); // HERE I GOT AN EXCEPTION IN THIS LINE

Jede Hilfe wäre sehr dankbar.

BEARBEITET:Gelöst Ich habe diesen Code benutzt:

cmd.CommandText = "INSERT INTO room(person,address) VALUES(?person,?address)";
cmd.Parameters.Add("?person", MySqlDbType.VarChar).Value = "myname";
cmd.Parameters.Add("?address", MySqlDbType.VarChar).Value = "myaddress";
cmd.ExecuteNonQuery();

Danke so!

Antworten auf die Frage(9)

Ihre Antwort auf die Frage