C # с параметрами MySQL INSERT

Добрый день всем, я использую Visual C # 2010 и MySQL версии 5.1.48-community. Я надеюсь, что вы можете помочь мне с этим кодом. Я не считаю, что это работает на меня. Что мне не хватает?

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

И когда я пытаюсь это скомпилировать. Это говорит:

Столбец Person не может быть пустым

Редакция:

Но когда я попробую этот код.

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

Но этот код подвержен атаке SQL инъекций, но он работает, не дает мне ошибку.

Редакция:

Я пытался использовать это. я нашел этоВот так что я думал, что это будет работать, но дает мне эту ошибку

Индекс (на основе нуля) должен быть больше или равен нулю и меньше размера списка аргументов.

Любая идея?

    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

Любая помощь приветствуется.

Редакция:РЕШИТЬ Я использовал этот код:

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

Спасибо ТАК!

Ответы на вопрос(9)

Ваш ответ на вопрос