繁体   English   中英

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

[英]"Connection must be valid and open" - DataReader problem

我试图从一个数据库中获取所有年龄不足的用户,但是当我尝试时, 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;
        }

无论如何,谢谢,如果这是一个愚蠢的问题,我很抱歉,但我就是想不通。

感谢您澄清我的问题 mjwills 和 Adyson,您说得对,我忘了打开它。 我有一个功能可以打开我在程序的所有其他方法中使用的连接,但我忘记在这个方法中添加它。 对不起,谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM