Search code examples
c#heidisql

Data wont get inserted into database, heisql


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

Solution

  • 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 '@'