при обращение к бд System.InvalidOperationException: "Fill: Свойство SelectCommand.Connection не инициализировано."

    private void ButtonLogin_Click(object sender, EventArgs e)
    {
        String loginUser = loginField.Text;
        String passUser = passField.Text;

        DB db = new DB();

        DataTable table = new DataTable();

        MySqlDataAdapter adapter = new MySqlDataAdapter();

        MySqlCommand command = new MySqlCommand("SELECT * FROM `users` WHERE 'login' = @uL AND 'pass' = @uP");


        command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = loginUser;
        command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = passUser;

        MySqlCommand command1 = command;
        adapter.SelectCommand = command1;
        adapter.Fill(table);


        if (table.Rows.Count > 0)
            MessageBox.Show("Авторизация успешна");
        else
            MessageBox.Show("Пользователь не зарегестрирован");



    }
}

}


Ответы (1 шт):

Автор решения: Sergei Maslov

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

String loginUser = loginField.Text;
String passUser = passField.Text;

DB db = new DB();

DataTable table = new DataTable();

MySqlDataAdapter adapter = new MySqlDataAdapter();

MySqlCommand command = new MySqlCommand("SELECT * FROM `users` WHERE 'login' = @uL AND 'pass' = @uP", connectionString);


command.Parameters.Add("@uL", MySqlDbType.VarChar).Value = loginUser;
command.Parameters.Add("@uP", MySqlDbType.VarChar).Value = passUser;

MySqlCommand command1 = command;
adapter.SelectCommand = command1;
adapter.Fill(table);


if (table.Rows.Count > 0)
    MessageBox.Show("Авторизация успешна");
else
    MessageBox.Show("Пользователь не зарегестрирован");
→ Ссылка