У меня проблемы с примером кодирования пароля пользователя - PullRequest
0 голосов
/ 20 января 2020

Используя этот предыдущий вопрос, мне нужно немного помочь

Используя второй ответ по приведенной выше ссылке, мне пришлось обновить его для MySQL

 private void btLogin_Click(object sender, EventArgs e)
        {
            string connectionString;
            connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

            connection = new MySqlConnection(connectionString);
            using (var con = new MySqlConnection(connectionString));
            {
                using (var command = new MySqlCommand(connection = con))
                {
                    con.Open();

                    command.CommandText = @"SELECT level FROM userTable WHERE user=@username, password=@password";
                    command.Parameters.AddWithValue("@username", lbUser.Text);
                    command.Parameters.AddWithValue("@password", tbPassword.Text);

                    var strLevel = command.ExecuteScalar();

                    if (strLevel == DBNull.Value || strLevel == null)
                    {
                        MessageBox.Show("Invalid username or password");
                        return;
                    }
                    else
                    {
                        MessageBox.Show("Successfully login");
                        Hide(); // hide this form and show another form
                    }

                }
            }
        }

Все выглядит хорошо, НО это

 using (var con = new MySqlConnection(connectionString));
            {
                using (var command = new MySqlCommand(connection = con))
                {
                    con.Open();

Это говорит о том, что жулика не существует. Я не знаю, как использовать это хорошо, чтобы увидеть проблему.

1 Ответ

0 голосов
/ 21 января 2020

Первым параметром конструктора MySqlCommand является текст команды. Это должно работать, если вы измените свой код на следующее:

con.Open();
using (var command = new MySqlCommand())
{
    command.Connection = con;
    command.CommandText = @"SELECT level FROM userTable WHERE user=@username AND password=@password";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...