Logowanie z użyciem parametrów C#

0

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 :)

2

Do zapytania zastosowanego w SQLAdapter również musisz przypisać parametry. Póki co masz tylko do SQLCommand.

0

wystarczylo dodac :

sda.SelectCommand = cmd;

dzieki za pomoc mariano901229 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1