这个问题很头痛!困扰了我很久,不知那位大侠能帮我解决。分不够还可加。

joyu 2003-11-14 05:56:58
在 .net中频繁调用 DataReader 和 DataSet时 经常会报这个错误:这进行fill Dataset时 有一个DataReader 没有关闭,但是我没处调用都关闭了。
...全文
32 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkal4587 2003-12-09
  • 打赏
  • 举报
回复
高论~
gucs 2003-12-09
  • 打赏
  • 举报
回复
向wincarf学习
JacobSun 2003-12-09
  • 打赏
  • 举报
回复
是的,wincart说得没错
fly2008fly 2003-12-09
  • 打赏
  • 举报
回复
楼上高人!
wincarf 2003-11-21
  • 打赏
  • 举报
回复
我不知道大家是怎么使用ado.net的,我个人认为不应该象这样用,我在开发分布应用的过程中一个很好的经验是把业务逻辑层和数据服务层独立开来,保持业务逻辑层的无连接和无状态性,这样根本不会出现管理数据库连接方面的问题,否则只能是治标不治本
l_clove 2003-11-20
  • 打赏
  • 举报
回复
DataReader在Open状态下会占用Connection的资源,所以必须先关闭DataReader,然后再关闭Connection,所以,应该在所有使用DataReader的模块使用finally语句保证所有的DataReader与Connection全部关闭
即:
try
{
}
catch(e)
{
}
finally
{
reader.close();
connection.close();
}
srj911 2003-11-20
  • 打赏
  • 举报
回复
conn.close()试试
eagle_hb 2003-11-20
  • 打赏
  • 举报
回复
用的时候注意上一个连接或者DataReader对像关闭了没有,每一个方法用的时候,都要注意关闭。我以前的也经常碰到这种情况
erictang2003 2003-11-20
  • 打赏
  • 举报
回复
使用 using 语句:

using( SqlConnection conn = new SqlConnection(connString) ){
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM table1";
cmd.CommandType = CommandType.Text;
try {
SqlDataReader rdr = cmd.ExecuteReader( CommandBehavior.CloseConnection );
//do someting;
}catch {
throw;
}
}
gOODiDEA 2003-11-20
  • 打赏
  • 举报
回复
使用DataReader必须首先判断是否为null

if( m_DataReader != null )
{
m_DataReader.Close();
}
lanyahuhu 2003-11-19
  • 打赏
  • 举报
回复
up
szsbell 2003-11-16
  • 打赏
  • 举报
回复
记得用完Read()就应该DataReader.Close()

asam2183 2003-11-16
  • 打赏
  • 举报
回复
一个SqlDataAdapter或SqlCommand对就一个或者DataSet, DataReader
SqlConnection oConn=new SqlConnection(dsn);
try
{
...
}
finally
{
oConn.Close();
}
xhan2000 2003-11-16
  • 打赏
  • 举报
回复
注意
DataReader.Close()
haoliqi 2003-11-15
  • 打赏
  • 举报
回复
把代码贴出来看看!DataReader使用会独站Connection,可否注意了它的关闭
poisonb 2003-11-15
  • 打赏
  • 举报
回复
关注一下

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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