“连接必须有效并且打开” - DataReader问题

问题描述 投票:-3回答:1

我试图从一个数据库中取出所有老年用户,但当我尝试时,System.InvalidOperationException: 'Connection must be valid and open.'弹出。这是一个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;
        }

非常感谢,如果这是一个愚蠢的问题,我很抱歉,但我无法弄明白。

c# mysql datareader
1个回答
0
投票

谢谢你澄清我的问题mjwills和Adyson,你是对的,我忘了打开它。我有一个函数来打开我在我的程序的每个其他方法中使用的连接,但我忘了在这个中添加它。对不起,谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.