.NET运行时报错Cannot access a disposed object
在.NET中使用数据库查询函数时出现以下错误:Cannot access a disposed object
在对代码进行排查后发现,在执行该次数据库操作之前执行了Dispose()操作:
if (isCommit == false)
{ //如果未能成功提交,也就是中间发生过异常,那么回滚.这样捕获的好处是, 异常信息的StackStace 不会丢,能快速定位到问题代码行
tran.Rollback();
}
tran.Dispose();
DataBase.Connection.Dispose();//这步操作将数据连接关闭
- 1
- 2
- 3
- 4
- 5
- 6
在对数据库执行Dispose()操作后就无法再连接到数据库,就会出现上述错误
**解决方法:**将Dispose()操作放在最后一次需要进行数据库操作的后面或者不对其进行释放(数据库访问会造成大量的资源占用,最好对其进行手动资源释放)