问题描述
C#连接MySql时,若使用MySqlCommand执行sql语句和MySqlDataReader读取查询结果是,会报异常
MySqlDataReader reader = null;
try
{
if (m_sqlConnect.State != ConnectionState.Open)
{
Console.WriteLine("数据库未链接");
//尝试重新链接
Connect();
}
MySqlCommand command = new MySqlCommand(sqlStr, m_sqlConnect);
reader = command.ExecuteReader();
}
catch (MySqlException ex)
{
Console.WriteLine(ex.Message);//打印错误信息
}
return reader;
第一次调用这个函数的时候没有问题,第二次会抛出异常There is already an open DataReader associated with this Connection which must be closed first
搜了很多关于这个的问题,基本上都是用C#关键字using
,但是MySql是没办法使用这种办法的,又或者是在使用前先关闭连接,如果我想在操作数据库先关闭在连接,重复这个步骤,也不会写这个文章了,再者这样会浪费大量的资源。
解决方案
解决办法其实很简单,不晓得为啥没人记录下来,不晓得是不是我搜索的姿势不对。
在MySqlDataReader
对象使用完成之后,及时的调用close
函数就可以了,即reader.close()
;