Насколько мне известно, синтаксис объявления параметра в тексте команды не {user}
, а @user
.
Итак, эта строка вашего кода
string checkuser = $"SELECT COUNT(*) from users where name = {user}";
Должно быть
string checkuser = $"SELECT COUNT(*) from users where name = @user";
И «@user» должен соответствовать имени добавляемого вами параметра.
Вы ложно вызываете параметр name
вместо user
на эта строка
cmd.Parameters.AddWithValue("name", tbUser.Text);
Итак, она должна выглядеть так
cmd.Parameters.AddWithValue("user", tbUser.Text);
Как @Transcendent уже упоминал в комментариях к вашему методу Register
, вы никогда не добавляете 3 параметра, используемых в текст команды в ваши коллекции параметров, поэтому эта строка просто отсутствует
cmd.Parameters.AddWithValue("user", tbUser.Text);
cmd.Parameters.AddWithValue("pass", tbPass.Text); //this line assumes there is a textbox called tbPass
cmd.Parameters.AddWithValue("email", tbEmail.Text); //this line assumes there is a textbox called tbEmail