C # com parâmetros INSERT do MySQL

Bom dia a todos, estou usando o Visual C # 2010 e MySQL Versão 5.1.48-community. Espero que você possa me ajudar com este código. Eu não acho isso funcionando em mim. o que estou perdendo?

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

E quando eu tento compilá-lo. Diz:

Coluna Pessoa não pode ser nula

EDITADO:

Mas quando eu tento esse código.

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

Mas este código é propenso a ataque de injeção de SQL, mas funciona, não me dá um erro.

EDITADO:

Eu tentei usar isso. Eu encontreiAqui então eu pensei que funcionaria, mas me dá esse erro

O índice (baseado em zero) deve ser maior ou igual a zero e menor que o tamanho da lista de argumentos.

Qualquer ideia?

    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

Qualquer ajuda seria muito apreciada.

EDITADO:RESOLVIDO Eu usei este código:

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

Obrigado!

questionAnswers(9)

yourAnswerToTheQuestion