已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭

已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭,第1张

DataReader 在打开使用时,一个 SqlConnection 只允许打开一个 DataReader,在开启另一个 DataReader 时,必须将前面一个先 Close 掉。

1、使用数据库更新或插入语句时,通常用 SqlCommand 的 ExecuteNonQuery() 方法,并且定义了一个公共的数据库连接,每次查询时都生成新连接不会有这个问题,但会占用高的数据库资源。

2、这种情况下,内部会生成一个空的 DataReader 对象,当前的数据库连接关闭掉后,该 DataReader 才会释放,因此在推荐使用 using 关键字,可以将它所定义范围内的对象都释放掉。

3、也可以设定ConnectionString,直接加上MultipleActiveResultSets=true语句,只适用于SQL 2005之后的版本,先读出放置在List中。

4、改为下图代码之后,ToList之后就被读到内存中了,与DataContext脱钩了。

OPENDATAstudent。数据库是指长期存储在计算机内有组织的、可共享的数据集合,打开打开studen的命令是OPENDATAstudent。命令(Command)是通过输入特定文本字符串而激活的高级功能。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10851235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存