• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

阅读器关闭时尝试调用 HasRows/Read无效 解决思路

开发技术 开发技术 2个月前 (04-14) 10次浏览

执行数据库操作时,出现阅读器关闭时尝试调用 HasRows无效或者阅读器关闭时尝试调用 Read无效的问题,

经查都是因为操作数据库时,数据库连接已关闭造成的。。

究其原因是因为使用了SqlDataReader返回数据库查询的数据。SqlDataReader的数据保存在数据库服务器中,

数据库连接关闭/断开后自然无法再调用其方法访问数据库内容然后报错。

解决方法分2种思路:

1、数据库查询返回SqlDataReader时,保证数据库连接不断开。因此代码设计中就 要避免使用Using去申请数据库连接对象,在其作用域之外,连接会自动释放。

2、使用DataSet等类型返回数据库查询数据,DataSet对象在一个暂存区(Cache)保留了数据库中查到的数据,将数据保存在本地内存中。

同时使用思路1,当访问量过大时,连接池面临暴涨的风险,需要着重考虑探讨;

使用思路2,当访问数据量过大时又面临对本地内存的极大要求,需要权衡考虑。

 


程序员灯塔
转载请注明原文链接:阅读器关闭时尝试调用 HasRows/Read无效 解决思路
喜欢 (0)