我很欣赏这个问题之前会被问到,但是,我在过去的 5 天里一直在搜索 SO 和网络,但还没有找到解决我的问题的方法。
我正在尝试使用 C# 从 MySQL 数据库中检索记录。
代码编译得很好,但是当我测试应用程序并尝试将数据绑定到 DataTable() 时,MySqlDataReader 抛出以下异常
“阅读器关闭时尝试阅读无效”
我无法诊断问题;据我所知,在我尝试阅读之前,阅读器并没有被关闭。
方法如下:
/// <summary>
/// Performs a select statement
/// </summary>
/// <param name="query">String of the SQL Query</param>
/// <param name="parameters">List of SQL Parameters</param>
/// <returns>DataTable</returns>
public DataTable SelectQuery(string query, List<MySqlParameter> parameters)
{
MySqlConnection connection = new MySqlConnection(connectionString);
MySqlCommand cmd = new MySqlCommand(query, connection);
foreach(MySqlParameter p in parameters)
{
cmd.Parameters.Add(p);
}
connection.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
return dt;
}
实际的数据库连接工作正常,我已经在 MySqlConnection 上放置了一个手表,并且连接正在正常打开。
我将以下查询传递给此方法:
string query = "SELECT IDS_USER, USRNM, PSSWRD, USR_SALT FROM factUser WHERE USRNM = ?username";
我在 MySql Workbench 中测试过,它返回了正确的数据。
当我观看 MySqlCommand 时,参数已按应有的方式添加到命令中。
任何帮助将不胜感激,因为我非常难过!