jak sprawdzić czy hasło jest poprawne?

0

Witam serdecznie,

W Microsoft Visual 2010 Express próbuje napisać splikację okienkową, która pobiera dane z bazy danych SQL (.mdf). Jestem na etapie sprawdzania czy użytkownik podał prawidłowe hasło (to z textbox zgadza się z tym w bazie danych).
Mój kod wygląda tak:

SqlDataAdapter DA_haslo = new SqlDataAdapter("SELECT hasło FROM logowanie WHERE login=' " + @textBox_login + "'", logowanie);
                    
                    DataSet dataset_haslo = new DataSet();
                    dataset_haslo.Tables.Add("logowanie");
                    DA_haslo.Fill(dataset_haslo, "logowanie");
                    
                    foreach (DataRow row in dataset_haslo.Tables[0].Rows)
                    {
                        if (row["hasło"].ToString() == textBox_hasło.Text)
                        {
                            MessageBox.Show("Brawo!!!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show("Znowu źle!!!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                    }

Debugowanie nie zgłasza błędów ale MessageBox się nie wyświetlają.

Z góry dziękuję każdemu, kto mi powie gdzie robię błąd, o czym zapominam.

Pozdrawiam

0

Nie jestem pewien, czy spacja w tym miejscu nie przeszkadza (pomiędzy ', a "):

login=' "

0

Dzięki za podpowiedź, ale to chyba coś jeszcze. Aktualnie kod wygląda tak:

 
SqlDataAdapter DA_haslo = new SqlDataAdapter("SELECT hasło FROM logowanie WHERE login='" + @textBox_login + "'", logowanie);
                    
                    DataSet dataset_haslo = new DataSet();
                    dataset_haslo.Tables.Add("logowanie");
                    DA_haslo.Fill(dataset_haslo, "logowanie");
                    
                    foreach (DataRow row in dataset_haslo.Tables[0].Rows)
                    {
                        if (textBox_hasło.Text == row["hasło"].ToString())
                        {
                            MessageBox.Show("Brawo!!!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show("Podane dane są nieprawidłowe!", "Uwaga", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                    }
                    textBox_login.Clear();
                    textBox_hasło.Clear();
                    logowanie.Close();

Po uruchomieni debugowania i wprowadznie danych MessageBox się nie wyświetla (ani jeden, ani drugi) a natomiast textBox_login i textBox_hasło są oczyszczane z wpisanej do nich treści.

Ja nowicjusz z góry dziękuję za wszystkie sugestie.

0

Może po prostu wpisujesz zły login?

1
Wronq napisał(a)

Może po prostu wpisujesz zły login?

Raczej na pewno.
Masz:textBox_login co według mnie przekłada się na coś w stylu

"System.Windows.Forms.TextBox"

Powinieneś użyć textBox_login.Text Zakładam, że to textbox z formatki.

Pozdrawiam.

0

Bardzo dziękuję!

To było to!

Diabeł tkwił w tym szczególe.

Pozdrawiam

0

Jest jeszcze drugi szczegół, którym jest nierozsądne przechowywanie hasła w bazie danych, ale to temat na oddzielny wątek.

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