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

lawbc 2009-04-20 03:39:43
RT
SQL:
IF EXISTS(SELECT 1 FROM deliverGoods WHERE orderId=@id) SELECT 1 ELSE SELECT 0
方法是用sqlhelper里的
我都没有用datareader怎么会提示已有打开的与此命令相关联的 DataReader,必须首先将它关闭,
而且都是用连接字符串作为参数传递给sqlhelper方法的,没有connection对象啊

找了一天了,还没有找到原因,大家帮忙看看哪里错啦
...全文
7165 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
遇到同意问题 求解 QQ:457100097
macaihong 2011-11-01
  • 打赏
  • 举报
回复
这个问题解决了没呀
ttyrone 2011-10-13
  • 打赏
  • 举报
回复
学习了,我也碰到这个问题了
niening314 2011-06-13
  • 打赏
  • 举报
回复
整了好久 才 在 数据库连接字段 上 找到办法

这个问题 是 因为 数据库 一般是 一个 Connection 只允许 有一个 活动的(打开的) SqlDataReader

要想 一个 Connection 允许 有多个 活动的(打开的) SqlDataReader 就需要

设置 Connection 的 MultipleActiveResultSets=True

QQ626498301 2011-05-24
  • 打赏
  • 举报
回复
http://www.cnblogs.com/sugarcane/archive/2011/05/12/2044876.html
yasaka 2011-04-27
  • 打赏
  • 举报
回复
我也遇到了这个问题,还没解决!帮顶!
gaoaonan 2010-10-25
  • 打赏
  • 举报
回复
我也遇到这个问题了,搞不定... 已经很久了!
va702b 2010-03-26
  • 打赏
  • 举报
回复
最郁闷的莫过于,每当这种情况出现,ok,我就改代码看看是什么地方出错。

好嘛,这问题就不出现了。然后冷不丁的又从别的地方冒出来
lingling6519 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 benbenln 的回复:]
sqlhelper中的方法可能调用了datareader,而你从sqlhelper中调用了两个使用datareader的方法,你先检查一下是否是这样引起的。一般我的问题就出在这。
[/Quote]
我也真遇到此问题了,高手来帮帮忙啊
zhanghuijun123456 2010-02-08
  • 打赏
  • 举报
回复
靠 我也是 LZ 最后解决了吗?
TrojanHorseRelive 2010-02-02
  • 打赏
  • 举报
回复
其实这个问题并不是由DataReader引起的,像楼主说的一样,我没有用DataReader,都用Linq操作的数据,所以不可能手动调用DataReader,但再执行下就没有问题,可能是SQL Server 数据库引起的,我用的是2005,不知道你用的是哪个?
Jinglecat 2009-04-20
  • 打赏
  • 举报
回复
再次说明下,我没有用datareader
===========
1.
再再次说明下,如果你没有用 DataReader,那你怎么读出来的数据?用 DataSet? DS 内部使用 DataReader

也许你不知不觉用了,也许你间接用了

2.
使用了 Connection 的 DataReader 没关闭,又有其他 DataReader 来用这个 Connection


xsm545 2009-04-20
  • 打赏
  • 举报
回复
可能DLL里有调用datareader
lawbc 2009-04-20
  • 打赏
  • 举报
回复
sql就是上面的,方法就是sqlhelper里面的,传的是字符串啊
没有connection变量,

MD,好像是dll版本问题,基本确定是这个原因了,但是还要测试下,不知道大家有没有出现这样的原因呢
人生就是赌 2009-04-20
  • 打赏
  • 举报
回复
获取数据表的底层是用datareader来填充的
很明显,你的错误源于你的连接未关闭或者数据库连接设置成了static
最好贴出详细的代码,大家才能帮你
皓月明 2009-04-20
  • 打赏
  • 举报
回复
你在上次用过datareader后肯定没有关闭
周公 2009-04-20
  • 打赏
  • 举报
回复
你调用了sqlhelper中的哪个方法了?
有些喜欢用DataReader来填充DataSet或者DataTable的。
看看相关的代码。
lawbc 2009-04-20
  • 打赏
  • 举报
回复
sqlheler没有调用datareader啊,而且我本地没有错误的,服务器上才会错误,还是偶然错误的,就是人数多的时候才会错
benbenln 2009-04-20
  • 打赏
  • 举报
回复
sqlhelper中的方法可能调用了datareader,而你从sqlhelper中调用了两个使用datareader的方法,你先检查一下是否是这样引起的。一般我的问题就出在这。
lawbc 2009-04-20
  • 打赏
  • 举报
回复
再次说明下,我没有用datareader
加载更多回复(4)

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧