Предупреждение о входе в C # - PullRequest
0 голосов
/ 03 февраля 2012

Ну, я здесь, потому что у меня проблема. У меня есть код, который был создан некоторое время назад. мой код работает правильно, когда я ввожу правильное имя пользователя и пароль. так что моя проблема в том, что когда пользователь вводит неверное имя пользователя и пароль, сообщение об ошибке не будет отображаться. Вот мой код:

MyDs.Clear();
MyDa.SelectCommand = Conn.CreateCommand();
MyDa.SelectCommand.CommandText = 
    "select * from PersonalName where Firstname=@first and Lastname=@last";
MyDa.SelectCommand.CommandType = CommandType.Text;
MyDa.SelectCommand.Parameters.Add("@first", DbType.String, 25, "Firstname").Value = textbox_Username.Text;
MyDa.SelectCommand.Parameters.Add("@last", DbType.String, 25, "Lastname").Value = textbox_Password.Text;

MyDa.Fill(MyDs);
foreach (DataRow item in MyDs.Tables[0].Rows)
{
    if (textbox_Username.Text != item[1].ToString() || textbox_Password.Text != item[3].ToString())
    {
        MessageBox.Show("not connected");
    }
    else
    {
        MessageBox.Show("Connected");
    }
}

Кто-нибудь может сказать мне, в чем проблема с этим кодом?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Ваш набор данных будет пустым, если они введут неправильное имя пользователя.Это будет ближе к тому, что вы хотите:

if (MyDs.Tables[0].Rows.Count > 0)
{
    // you don't need to check username, the SQL query took care of that

    if (textbox_Password.Text == item[3].ToString())
        MessageBox.Show("Connected.");
    else
        MessageBox.Show("Failed."); // wrong password
}
else
    MessageBox.Show("Failed."); // no such user
0 голосов
/ 03 февраля 2012

если запрос не возвращает записей, так как отсутствуют имя и фамилия, foreach не выполняется, ничего не происходит ...

Вам также нужно проверить, что myDa пуста, ваш код работает толькодля проверки действительных пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...