There is already an open DataReader associated with this Command which must be c

RealDay 2010-11-10 05:07:59
There is already an open DataReader associated with this Command which must be closed first

还是 这个错误、
很是郁闷 看了网上的 方法 老是还是有问题
...全文
155 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q333111555 2010-11-13
  • 打赏
  • 举报
回复
是不是用循环了?这个问题容易在循环中出现。
close之后还要dis
RealDay 2010-11-12
  • 打赏
  • 举报
回复
UP `
danjiewu 2010-11-12
  • 打赏
  • 举报
回复
2个办法,一是每次调用时new一个新的Connection
二是给方法加上锁,用lock
RealDay 2010-11-11
  • 打赏
  • 举报
回复
还会有
System.Threading.ThreadAbortException: Thread was being aborted
这个异常
RealDay 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wucong60 的回复:]
sqlcommand cmd =new sqlcommand(strcmd,conn);
Repeater1.Datasource=cmd.ExecuteReader(______.close);
其中ExecuteReader()它是一个重载的方法,你看一下它的别一个带参的重载方法,这个方法可以当你一用完ExecuteReader方法后就关闭数据库的.
[/Quote]

问题是 我都没用那个

我用的是
try
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
RealDay 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 danjiewu 的回复:]
你先要看下异常的堆栈信息,是不是 adapter.Fill(dataset);这句抛出的?
你是不是用了静态的Connection或者SqlCommand?
[/Quote]
我全部访问的都是这个

/// <summary>
/// 保护变量,数据库连接。
/// </summary>
public static SqlConnection Connection;

/// <summary>
/// 保护变量,数据库连接串。
/// </summary>
protected static String ConnectionString;


要怎么改呢
danjiewu 2010-11-11
  • 打赏
  • 举报
回复
你先要看下异常的堆栈信息,是不是 adapter.Fill(dataset);这句抛出的?
你是不是用了静态的Connection或者SqlCommand?
wucong60 2010-11-10
  • 打赏
  • 举报
回复
sqlcommand cmd =new sqlcommand(strcmd,conn);
Repeater1.Datasource=cmd.ExecuteReader(______.close);
其中ExecuteReader()它是一个重载的方法,你看一下它的别一个带参的重载方法,这个方法可以当你一用完ExecuteReader方法后就关闭数据库的.
RealDay 2010-11-10
  • 打赏
  • 举报
回复
没有直接操作DataReader 的、
RealDay 2010-11-10
  • 打赏
  • 举报
回复
问题是 我都不知道是哪个出来问题
而且我用的 数据处理的是
try
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw e;
}
IHandler 2010-11-10
  • 打赏
  • 举报
回复
老生常谈的问题了吧

DataReader对象没有及时关闭、释放

flyerwing 2010-11-10
  • 打赏
  • 举报
回复
must be closed first
===========================
开一个用完关一个,再用了再开.
hch126163 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 redmudwashcompanion 的回复:]

你在打开一个DataReader之前,必须关闭其他的已经打开的DataReader

也就是说,一个Command只能打开一个DataReader
[/Quote]
+1
Tanhualin 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 redmudwashcompanion 的回复:]
注意使用完DataReader,必须关闭,否则其他的DataReader打开,就出错
DataReader.Close()
[/Quote]

up
  • 打赏
  • 举报
回复
注意使用完DataReader,必须关闭,否则其他的DataReader打开,就出错
DataReader.Close()
  • 打赏
  • 举报
回复
你在打开一个DataReader之前,必须关闭其他的已经打开的DataReader

也就是说,一个Command只能打开一个DataReader
吴青峰 2010-11-10
  • 打赏
  • 举报
回复
你是不是DataReader读取器的Read()方法打开读取没有关闭,仔细检查看看。

62,272

社区成员

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

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

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

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