[EF] - "已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭" 之解决

错误

解决

在 ConnectionString 中添加 MultipleActiveResultSets=true(适用于SQL 2005以后的版本)。
MultipleActiveResultSets的作用是指定多活动的结果集是否与指定的链接相互关联,类型是bool类型:true代表与指定的链接关联,false代表与指定的链接不关联,默认是false。

参考资料

http://www.cnblogs.com/hfliyi/archive/2012/04/27/2472950.html

时间: 2024-08-08 09:42:19

[EF] - "已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭" 之解决的相关文章

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

多次用到SqlDataReader 要先关闭,再执行ExecuteNonQuery操作 每用一次需要先进行关闭,再执行新的一次,要不然就会报错“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭.” 那么如何解决呢? 方法有两种1,在ConnectionString加上MultipleActiveResultSets=true,但只适用于SQL 2005以后的版本2.选择读出SqlDataReader 中的数据给List或者arraylist之类的,之后进行关闭返回

code first提示已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭解决方法

使用codefirst查询当然是必不可少的,但有时不小心可能很简单的查询也会导致异常. 下面用codefirst做个示例简单演示下异常发生的场景: var attendlist = db.Database.SqlQuery<AttendCountViewModel>("select STUDENTID,SUM(isnull(REALHOUR,0)) As REALHOUR from ATTEND_LIST where ATTENDDATE='" + geDate + &qu

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

今天进行权限修改的时候,就一直报错! 同时打开两个或循环多个sqldatareader会出现以上错误.因为用的是sqldatareader做数据库的数据读取,sqlconnection开启没有关闭. 上网查了一下,一个SqlConnection只能执行一次事务,没用一次必须关闭然后再开启.上面我只用了一次没有关闭,直接开启所以会报错.其实不用多次打开在开启,那样实现起来很麻烦.直接在连接字符串的后面加上MultipleActiveResultSets=true即可. 如有配置文件直接修改配置文件

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

在运用Linq to sql 或者 linq to entity等相关linq技术进行数据库访问操作时,如果发生上述异常是因为是因为.NET內部是使用DataReader作数据存取,DataReader用同一个Connection. 解决办法有两个: 1,设定ConnectionString加上MultipleActiveResultSets=true,但只适用于SQL 2005以后的版本2.先读出放置在List中 例如将 var preObj = (from a in db.ArticleEA

vs2012打开低版本项目时 出现vs2012警告未能加载包“visual c++ package 解决办法

vs2012 打开 vs2010 项目时 提示的 错误信息. 解决办法 是下载一个 vs2012的 一个补丁包 http://www.microsoft.com/en-us/download/details.aspx?id=36020 初次安装成功后,调试 无法启用,关闭,重新打开项目 即可解决! ======ok. [在此谢谢网上提供解决方案的朋友们,谢谢你们!] vs2012打开低版本项目时 出现vs2012警告未能加载包"visual c++ package 解决办法

mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决

在EF5.0添加实体数据到数据库的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误 解决: SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled =

MySql重装以后,修改数据库路径,打开以前的数据库报Table &#39;XX库.XX表&#39; doesn&#39;t exist错误的解决办法

因为mysql主流的数据库引擎有MyISAM和InnoDB两种, 如果是MyISAM,直接把以前数据库拷贝到修改后的路径是可以的 但是InnoDB因为存储结构不同,必须还得把备份的innodb数据库表“*.frm”文件和innodb数据“ibdata1”文件拷到修改后的合适路径 参考资料:http://www.bcty365.com/content-35-2928-1.html https://blog.csdn.net/dihuangtian01/article/details/5177353

windows10下安装Microsoft Visual Studio 2013.4 Community enu中文语言包出错,提示“”程序兼容模式已打开.请将其关闭”的解决方法

原来win8系统用着有点慢,就选择重新安装系统,安装了win10预览版,感觉确实很不一样,呵呵.在安装了vs2013社区版后,默认是英文版的,因为英文不太好,需要安装简体中文语言包,但是安装时一直报“程序兼容模式已打开,请将其关闭然后重新运行安装程序”, 在使用兼容win8模式安装后仍然提示这个,郁闷了好几天,后来在网上找到一个解决办法,记录如下: 使用命令提示符打开vs_langpack.exe,在后面添加 /Uninstall,类似这样D:\tools\vslang>vs_langpack.

关于windows 下每次打开IE 8都弹出欢迎使用Internet Explorer 8 弹窗的关闭方法

今天笔者在安装完windows 操作系统后,发现了一个问题,即每次打开IE 8浏览器,都会弹出一个欢迎界面: 弹窗标题为:设置windows Internet Explorer,具体内容如下图所示: 经过研究发现,最终还是找到关闭弹窗信息的方法,具体步骤如下: 1.运行:gpedit.msc进入组策略管理 2.找到,计算机配置--管理模板--Windows 组件--Internet Explorer,下的[阻止执行首次运行自定义设置] 3.右键编辑,将此项配置成 已启动,选择所需的选项处设置为: