jak sprawdzić czy hasło jest poprawne?

jak sprawdzić czy hasło jest poprawne?
A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
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:

Kopiuj
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

Wronq
  • Rejestracja: dni
  • Ostatnio: dni
0

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

login=' "

A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

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

Kopiuj
 
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.

Wronq
  • Rejestracja: dni
  • Ostatnio: dni
0

Może po prostu wpisujesz zły login?

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
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

Kopiuj
"System.Windows.Forms.TextBox"

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

Pozdrawiam.

A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Bardzo dziękuję!

To było to!

Diabeł tkwił w tym szczególe.

Pozdrawiam

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.