c# - “连接必须有效且打开” - DataReader 问题
问题描述
我正在尝试从数据库中获取所有年龄不足的用户,但是当我尝试时,会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,您是对的,我忘了打开它。我有一个功能可以打开我在程序的所有其他方法中使用的连接,但我忘记在这个方法中添加它。对不起,谢谢!
推荐阅读
- c# - 实现没有饥饿的while循环以在wpf中重绘图像
- generics - 实现 BaseDao 的多个 Daos 的存储库类委托 - 可能吗?
- android - 如何在我的 DAO 中引用可搜索的 FTS4 表而不会出现编译器错误?
- c# - 相对 URI 字符串不针对格式“uri”进行验证
- java - 如何在处理中的不同时间间隔后触发不同的事件?
- node.js - 错误在运行应用程序时无法解析模块@angular/core 错误
- arrays - 如何根据字母/符号/数字对字符串数组进行排序
- wordpress - 如何在 post.php 上获取作者 ID?$authordata 返回 NULL (Wordpress)
- json - 在 postgresql 查询中展平 jsonb 对象的更好方法是什么
- python - 在 GCP 上使用 python numpy 和 pandas 部署小批量作业