C# 读卡器关闭时尝试读取无效
我正在处理C#和MySql请求。我试图在我的数据库中检索数据,但有一条错误消息:当读卡器关闭时,读取的尝试无效 谢谢你们的帮助,伙计们:) 我有这个功能:C# 读卡器关闭时尝试读取无效,c#,sqldatareader,C#,Sqldatareader,我正在处理C#和MySql请求。我试图在我的数据库中检索数据,但有一条错误消息:当读卡器关闭时,读取的尝试无效 谢谢你们的帮助,伙计们:) 我有这个功能: public MySqlDataReader GetValueFromTable(string table, ArrayList attribut, ArrayList parameter) { string query = string.Empty; MySqlDataReader rdr = null; tr
public MySqlDataReader GetValueFromTable(string table, ArrayList attribut, ArrayList parameter)
{
string query = string.Empty;
MySqlDataReader rdr = null;
try
{
query = "SELECT * FROM `" + table + "` WHERE ";
for (int i = 0; i < attribut.Count; i++)
{
query += attribut[i] as string;
query += " = ";
query += parameter[i] as string;
if(i != attribut.Count - 1)
query += " AND ";
}
query += ";";
using (mysqlConnection)
{
using (mysqlCommand = new MySqlCommand(query, mysqlConnection))
{
rdr = mysqlCommand.ExecuteReader();
}
}
}
catch (Exception ex)
{
Debug.Log(ex.ToString());
}
finally {}
return rdr;
}
using块在此关闭连接(在退出时)
您的阅读器正在关闭,因为它被包装在using语句中。当命令和连接被释放时,读卡器也被释放。在处理读卡器之前,您需要先取出数据。如果我没有弄错的话,是using语句杀死了读卡器。一旦using块终止,IDisposable将启动MySQLConnection,关闭并处理与数据库的连接。rdr是如何使用的?当连接周围的using块退出时,连接关闭,读卡器也随之关闭。在不同的场景中出现相同的错误
ArrayList attribut = new ArrayList();
ArrayList parameter = new ArrayList();
attribut.Add("usern_id");
parameter.Add("1");
MySqlDataReader reader = dataBase.GetValueFromTable("papillon", attribut, parameter);
reader.Read();
Debug.Log(reader[0]);
reader.Close();
using (mysqlCommand = new MySqlCommand(query, mysqlConnection))