«Соединение должно быть действительным и открытым» - проблема с DataReader - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь взять из базы данных всех несовершеннолетних пользователей, но когда я пытаюсь, System.InvalidOperationException: 'Connection must be valid and open.' всплывает. Это приложение Windows Form, так что это происходит, когда я нажимаю кнопку.

Я попытался найти проблему, но не могу найти ошибку. У меня есть еще 5 функций с тем же синтаксисом, и они работают просто отлично. Вот код, который у меня есть:

public static List<User> Underage(MySqlConnection connection)
        {
            string query= string.Format("SELECT * FROM users WHERE age<18");
            MySqlCommand command = new MySqlCommand(query, connection);
            MySqlDataReader reader = command.ExecuteReader();

            List<User> underage= new List<User>();
            if (reader.HasRows)
            {
                User usu = new User();
                while (reader.Read())
                {
                    usu.id = reader.GetInt16(0);
                    usu.name = reader.GetString(1);
                    usu.surname= reader.GetString(2);
                    usu.email = reader.GetString(3);
                    usu.age= reader.GetInt16(4);
                    usu.birth = reader.GetDateTime(5);
                    usu.payment= reader.GetFloat(6);
                    underage.Add(usu);
                }
            }
            return underage;
        }

В любом случае, спасибо, и извините, если это глупая проблема, но я просто не могу разобраться.

1 Ответ

0 голосов
/ 07 апреля 2019

Спасибо за разъяснение моей проблемы mjwills и Adyson, вы были правы, я забыл открыть его. У меня есть функция, чтобы открыть соединение, которое я использовал в любом другом методе моей программы, но я забыл добавить его в этот. Извините и спасибо!

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