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ę!