jak sprawdzić czy hasło jest poprawne?

Odpowiedz Nowy wątek
2011-07-13 12: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:

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

edytowany 1x, ostatnio: Aaaa123, 2011-07-13 12:29

Pozostało 580 znaków

2011-07-13 12:54
0

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

login=' "


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".
na pewno przeszkadza - ŁF 2011-07-13 12:59

Pozostało 580 znaków

2011-07-13 13:15
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.

Pozostało 580 znaków

2011-07-13 13:23
0

Może po prostu wpisujesz zły login?


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".

Pozostało 580 znaków

2011-07-13 14:10
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.

edytowany 3x, ostatnio: Sarrus, 2011-07-13 14:12

Pozostało 580 znaków

2011-07-13 17:07
0

Bardzo dziękuję!

To było to!

Diabeł tkwił w tym szczególe.

Pozdrawiam

Pozostało 580 znaków

2011-07-14 00:12
0

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


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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