C# &引用;连接必须有效且打开";-数据读取器问题

C# &引用;连接必须有效且打开";-数据读取器问题,c#,mysql,datareader,C#,Mysql,Datareader,我试图从数据库中获取所有未成年用户,但当我尝试时,System.invalidoOperationException:“连接必须有效且打开。” 突然出现。这是一个Windows窗体应用程序,所以当我按下按钮时会发生这种情况 我试着寻找这个问题,但找不到错误。我还有5个相同语法的函数,它们工作得很好。这是我的代码: public static List<User> Underage(MySqlConnection connection) { st

我试图从数据库中获取所有未成年用户,但当我尝试时,
System.invalidoOperationException:“连接必须有效且打开。”
突然出现。这是一个Windows窗体应用程序,所以当我按下按钮时会发生这种情况

我试着寻找这个问题,但找不到错误。我还有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;
        }
未成年人公共静态列表(MySqlConnection)
{

字符串查询=string.Format("从年龄的用户中选择*谢谢你澄清我的问题mjwills和Adyson,你是对的,我忘了打开它。我有一个打开连接的功能,我在我的程序的所有其他方法中都使用了这个功能,但我忘了在这个方法中添加它。对不起,谢谢!

如果你能提供一个,包括连接的方式,那就太棒了声明并实例化。如果我无法将其复制并粘贴到控制台应用程序中并按原样运行以重现问题-它还不是问题。几乎可以肯定,您忘记打开连接,或者更早地关闭了连接。听起来您好像从未打开连接。消息似乎很清楚。您是否运行了连接。open()在这段代码之前?