В запрос не подставляются параметры, делаю так:
using (MySqlCommand command = new MySqlCommand("INSERT INTO users (name, email, password) VALUES ('@username', '@email', '@password')", this.mc))
{
command.Prepare();
command.Parameters.AddWithValue("@username", this.username);
command.Parameters.AddWithValue("@email", this.email);
command.Parameters.AddWithValue("@password", this.password);
int numRows = command.ExecuteNonQuery();
if (numRows > 0)
{
return true;
}
else
{
return false;
}
}
В итоге в базу добавляются значения так, как они есть в строке запроса изначально, т.е. @username, @email, @password и т.д. Что я делаю не так? Прогуглил, везде делают так, в некоторых местах пишут вместо '@' - ':' или '?' - так тоже пробовал, то же самое. Пробовал при добавлении параметра указывать без символа, т.е.
command.Parameters.AddWithValue("password", this.password);
Так тоже не работает.
Уберите одинарные кавычки вокруг параметров в SQL запросе.
Update
значения им не придавал
Параметры в SQL - это как переменные в C#.
Аналог запроса с кавычками - как у Вас:
string a = "This is value of variable a.";
string b = "Add something to variable a - 'a'";
Аналог запроса без кавычек:
string a = "This is value of variable a.";
string b = $"Add something to variable a - {a}";
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости