Parametry C # z MySQL INSERT

Dzień dobry dla wszystkich, używam Visual C # 2010 i MySQL w wersji 5.1.48-community. Mam nadzieję, że możesz mi pomóc z tym kodem. Nie działa na mnie. czego mi brakuje?

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();

A kiedy próbuję to skompilować. To mówi:

Kolumna osoby nie może być pusta

EDYTOWANE:

Ale kiedy próbuję tego kodu.

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

Ale ten kod jest podatny na atak wtórny sql, ale działa, nie daje mi błędu.

EDYTOWANE:

Próbowałem tego użyć. znalazłem totutaj więc pomyślałem, że to zadziała, ale daje mi ten błąd

Indeks (oparty na zera) musi być większy lub równy zero i mniejszy niż rozmiar listy argumentów.

Dowolny pomysł?

    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

Każda pomoc byłaby bardzo mile widziana.

EDYTOWANE:ROZWIĄZANY Użyłem tego kodu:

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();

Dziękuję!

questionAnswers(9)

yourAnswerToTheQuestion