CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

"已有打开的与此连接相关联的DataReader"问题

楼主sunrongxa(西康指挥部.net)2004-12-02 11:49:28 在 .NET技术 / ASP.NET 提问

打开一个数据库中主表(table1)——从表(table2)的程序如下:    
   
  OleDbCommand   cmd;    
  OleDbDataReader   dr;    
  OleDbCommand   cmd2;    
  OleDbDataReader   dr2;    
   
  cmd=new   OleDbCommand("select   *   from   table1",cn);    
  dr=cmd.ExecuteReader();    
  while(dr.Read())    
  {    
   
          cmd2=new   OleDbCommand("select   *   from   table2   where   blockid="   +   dr.GetInt32(0)   +";",cn);    
   
          //程序总是在这里出错,错误信息如下:    
          //已有打开的与此连接相关联的DataReader,必须首先将它关闭    
          dr2=cmd2.ExecuteReader();    
   
          while(dr2.Read())    
          {    
                  //代码略...    
   
          }    
          dr2.Close();    
          dr2=null;    
          cmd2.Dispose();    
          cmd2=null;    
   
  }    
   
  dr.Close();    
  dr=null;    
  cmd.Dispose();    
  cmd=null;    
  cn.Dispose();    
  cn=null    
   
   
  感觉好象DataReader在同一时间只能打开一个???    
  谁能说说这是怎么回事?谢谢先! 问题点数:20、回复次数:4Top

1 楼ALong_Yue()回复于 2004-12-02 11:51:02 得分 5

你的理解是正确的。:)Top

2 楼exboy(kuku)回复于 2004-12-02 11:51:28 得分 5

cmd2=new   OleDbCommand("select   *   from   table2   where   blockid="   +   dr.GetInt32(0)   +";",cn);    
   
  在这一句里面不能使用   cn,   因为   cn   还在被   dr   使用,所以在这里必须   new   一个新的   Connection   对象.Top

3 楼gsxzm(肖明)回复于 2004-12-02 12:06:27 得分 5

它已经告诉你哪里错了,呵呵,还有就是reader用完以后马上关掉最好。不赞成同时用两个conn,耗资源啊。照你的情况可以先把dr里面的东西放进一个int数组里面,关掉,然后再用第二个dr2.仅供参考:)Top

4 楼wf5360308(冷月孤峰)回复于 2004-12-02 13:05:34 得分 5

是你之前打开的连接没有关闭!Top

相关问题

  • 打开的与此连接相关联的 DataReader,只有40分了,都给了
  • 关于“已有打开的与此连接相关联的 DataReader,必须首先将它关闭”
  • "已有打开的与此连接相关联的 DataReader,必须首先将它关闭。"
  • 已有打开的与此连接相关联的 DataReader,必须首先将它关闭,怎么解决?
  • 已有打开的与此连接相关联的 DataReader,必须首先将它关闭
  • 已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
  • 再问一问题,如何解决“已打开的与此连接相关联的 DataReader,必须首先将它关闭。”的问题?
  • 【救急】已有打开的与此连接相关联的 DataReader,必须首先将它关闭.急,解决马上结帖,不耽误大家时间
  • datareader提示没有打开的连接错误
  • Winform中如何打开关联文档

关键词

  • null
  • dr
  • oledbcommand
  • 打开
  • datareader
  • cmd
  • cn
  • dispose
  • table
  • select

得分解答快速导航

  • 帖主:sunrongxa
  • ALong_Yue
  • exboy
  • gsxzm
  • wf5360308

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo