Witam,
stworzyłem logowanie do bazy za pomocą danych z textboxa, jednak aby uniknac SQL injections chciałem użyć parametrów , oto kod :
public void Logowanie()
{
string nameuser = textBox1.Text;
string passwd = pass_txt.Text;
try
{
SqlConnection con = new SqlConnection("Data Source=.;Database=TEST;" + "User Id=admin;" + "Password=Qwerty1234;");
SqlCommand cmd;
string login = "select count(*) from OpUser where login=@USERNAME and status='ACTIVE';";
con.Open();
cmd = new SqlCommand(login, con);
cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar).Value = nameuser;
cmd.Parameters.Add("@PASSWD", SqlDbType.VarChar).Value = passwd;
SqlDataAdapter sda = new SqlDataAdapter("select count(*) from OpUser where login=@USERNAME and password =@PASSWD;", con);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
{
int count = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
if (count == 1)
{
this.Hide();
MAIN ss = new MAIN();
ss.Show();
}
else
{
MessageBox.Show("Konto zablokowane, proszę o kontakt z administratorem systemu.");
}
}
else
{
MessageBox.Show("Proszę sprawdz swoj login oraz haslo, a nastepnie sprobuj ponownie.");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
cały czas mam informacje, że : " Należy zadeklarować zmienną skalarną @USRNAME"
pomimo wielu prób nie moge znależć rozwiazania, proszę o pomoc :)