i want insert some data in my database (heidisql). but it won't get inserted. any idea why?
in my table loginname
,email
,algo
are varchar
. hash
salt
are char
. and stretch has the datatype int
MySqlCommand cmd2;
cmd2 = dbConStr.CreateCommand();
cmd2.CommandText = "INSERT INTO `user` (Loginname, Email, Algo, Stretch, `Hash`, Salt) VALUES ('@loginname', '@email', '@algo', '@stretch','@hash', '@salt');";
cmd2.Parameters.Add("@loginname", MySqlDbType.VarChar).Value = loginname;
cmd2.Parameters.Add("@email", MySqlDbType.VarChar).Value = email;
cmd2.Parameters.Add("@algo", MySqlDbType.VarChar).Value = algo;
cmd2.Parameters.Add("@stretch", MySqlDbType.VarChar).Value = Convert.ToInt32(stretch);
cmd2.Parameters.Add("@hash", MySqlDbType.VarChar).Value = hash;
cmd2.Parameters.Add("@salt", MySqlDbType.VarChar).Value = salt;
MySqlDataReader r2 = cmd.ExecuteReader();
while (r2.Read())
{ }
r2.Close();
Beside the ExecuteReader, which should be ExecuteNonQuery()
, you are declaring wrong the insert parameters, should not be single quoted. Try:
INSERT INTO `user` (Loginname, Email, Algo, Stretch, `Hash`, Salt) VALUES (@loginname, @email, @algo, @stretch, @hash, @salt)
BTW, there are some databases that have different parameter delimiter, not sure if in heidisql is the '@'