使用codefirst查询当然是必不可少的,但有时不小心可能很简单的查询也会导致异常. 下面用codefirst做个示例简单演示下异常发生的场景: var attendlist = db.Database.SqlQuery<AttendCountViewModel>("select STUDENTID,SUM(isnull(REALHOUR,0)) As REALHOUR from ATTEND_LIST where ATTENDDATE='" + geDate + &qu…
已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭 引用:   http://www.cnblogs.com/maxao/archive/2011/03/18/1988168.html 在运用Linq to sql 或者 linq to entity等相关linq技术进行数据库访问操作时,如果发生上述异常是因为是因为.NET內部是使用DataReader作数据存取,DataReader用同一个Connection. 解决办法有两个: 1,设定ConnectionSt…
解决方法如下:1.不同的reader对象不要共用一个Connection对象.2.不要在while代码段内执行reader.Close();语句.否则继续执行while代码段内语句会报“阅读器关闭时尝试调用 Read 无效.”错误提示. 摘自:http://www.cnblogs.com/aerkate/archive/2011/12/20/2294753.html (一) 昨天在调试的过程中总是跳出如题所示的Exception,对数据库的操作也是赶鸭子上架,所以一直也没有什么完整的认识,但应该…
在以下代码中,当第二次foreach时会抛出该异常,原因是:由于Entity在读取数据的时候使用的是DbDataReader进行读取,当作为IEnumuerable<T>对象MoveNext进行操作时,只是使用DbDataReader进行一次Read操作,因此当查询的结果未完全读取完的时候,数据库连接一直被占用,当再次进行查询操作时便回出现上面的异常. 解决办法有两个: 1.在链接字符串中加入 MultipleActiveResultSets=true,但需要注意的是该方案只适合Sql Ser…
主要原因是因为EF采用的 DataReader来进行数据的存储,此时connection使用的是同一个. 例如: list = _tzNewsService.GetAll().Where(w => w.EditorId == AdminId || (w.CheckStatus == 3&&_administratorService.GetById(w.EditorId).OrganizeId==currentadmin.OrganizeId)).OrderByDescending(w…
在运用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…
错误 解决 在 ConnectionString 中添加 MultipleActiveResultSets=true(适用于SQL 2005以后的版本).MultipleActiveResultSets的作用是指定多活动的结果集是否与指定的链接相互关联,类型是bool类型:true代表与指定的链接关联,false代表与指定的链接不关联,默认是false. 参考资料 http://www.cnblogs.com/hfliyi/archive/2012/04/27/2472950.html…
异常提示:“System.InvalidOperationException”类型的异常在 System.Data.dll 中发生,但未在用户代码中进行处理  其他信息: 已有打开的与此 Command 相关联 异常解析:象依赖的Connection不能再用来执行其他Command命令.所以代码段会报“已有打开的与此命令相关联的 DataReader,必须首先将它关闭.” 的错误提示.解决方法如下:1.两个对象不要共用一个Connection对象.2.不要在while代码段内执行reader.C…
SqlParameter[] sp = { new SqlParameter("@nGridID",SqlDbType.BigInt), new SqlParameter("@strDocID",SqlDbType.VarChar,16), new SqlParameter("@chType",SqlDbType.Char,1), }; sp[0].Value = nGridID; sp[1].Value = strDocID; sp[2].Va…
今天在安装一个USB设备的时候报错“Windows已找到设备的驱动程序软件,但在试图安装它时遇到错误”. 这个错误的描述是“无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动”. 事实上,这个驱动在其他的机器上都能成功安装,唯独这台机器不行,从描述看像是某个服务没有启动引起的,后来排查了一遍,发现只要开启“Windows Update”服务就可以了. 原因是安装此驱动时,windows需要与Windows Update服务进行一次查询. 如果遇到问题的你,开启Windows Update…