C # формирует значение Textbox относительно значения базы данных, команды sql или набора данных адаптера данных - PullRequest
0 голосов
/ 17 февраля 2012

В основном я пытаюсь добиться следующего: -

У меня есть текстовое поле со значением, я хочу сравнить это значение со значением в базе данных SQL Server, если есть совпадениезатем выполните конкретное задание.

Это то, что у меня есть до сих пор:

SELECT        userID, username , password
FROM           Users
WHERE        (username = textboxUsername.text) AND (password = textboxPassword.text

Но мне кажется, это не работает, я думаю, что я почти все делаю правильно?

Также было бы лучше использовать набор данных или просто команду sql bog stand, поскольку будут выполняться другие запросы?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Немного расшифровав ответ маззуччи:

using (var con = new SqlConnection("connection string"))
{
    con.Open();
    var cmd = new SqlCommand(@"SELECT userID, username, password FROM Users WHERE (username = @username) AND (password = @password)");
    cmd.Parameters.AddWithValue("@username", textboxUsername.Text);
    cmd.Parameters.AddWithValue("@password", textboxPassword.Text);

    if (cmd.ExecuteNonQuery() > 0)
    {
        //They were the same
    }
}

Однако учтите, что все, что вы делаете, выглядит довольно опасно. Я думаю, что Эрик Липперт сделал на SO несколько сообщений о вреде паролей и аутентификации в целом.

Как этот: Нужно ли соль быть случайным, чтобы защитить хэш пароля?

1 голос
/ 17 февраля 2012

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

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

SqlCommand cmd = new SqlCommand();
cmd.CommandText = @"SELECT        userID, username , password
FROM           Users
WHERE        (username = @username) AND (password = @password)";

cmd.Parameters.AddWithValue("@username", textboxUsername.Text);
cmd.Parameters.AddWithValue("@password", textboxPassword.Text);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...