datareader 和 connection 对象,是不是用完close()就能释放内存呀?

zsdlOO 2010-09-05 12:58:34
datareader 和 connection 对象,是不是用完close()就能释放内存呀?
----------------------------------------------------
每次用完后,是不是必须要执行close(),另外,这一句能起到释放内存的作用吗?
好象在vb中,除了 close,还要 set conn=nothing 才能真正释放内存,不知c#中是如何要求的,是不是 close() 后,就可以不管它了。

还有, command 对象,应该如何释放内存呢?
这个对象没有 close()方法呀,我不知用完之后如何处理它?

...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
intotheland 2010-09-05
  • 打赏
  • 举报
回复
获取DataReader时可以指定是否同步关闭Connection,一个connection同时只能有一个DataReader处于打开状态,如果你有多个sql语句使用同一个connection进行查询,那么在你使用下一个DataReader之前必须close前一个DataReader
zsdlOO 2010-09-05
  • 打赏
  • 举报
回复
这么说,是不是:
只有连接对象需要手工用代码及时关闭。
其他对象都不用管,系统会自动回收内存,是这样吗?

比如 command对象,dataset 对象等,无须用代码释放内存。
jointan 2010-09-05
  • 打赏
  • 举报
回复
DataReader中有一个只向前移动的游标,close关闭和释放该游标.
zsdlOO 2010-09-05
  • 打赏
  • 举报
回复
可是 DataReader 对象本身,确实也有 close() 方法呀,
这个close 的作用是什么,难道也是关闭连接。

比如同时有多个 DataReader 对象,如果close()是指关闭连接的话,那么其一个DataReader执行 close()后,另外的几个 DataReader 对象的连接也跟着断了呀。

所以,DataReader 对象自身的 close() 是做什么,我还是不解。
steptodream 2010-09-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]

关闭连接的时候自动关闭DataReader对象,
如果执行过程中,不需要建别的DataReader,方法的内部不用关闭连接
连接被close时,其实是放入了连接池内
[/Quote]

恩,完全正确
q107770540 2010-09-05
  • 打赏
  • 举报
回复
conn.close(); 关闭数据库连接
ZXY900213 2010-09-05
  • 打赏
  • 举报
回复
不是这样的。close方法是关闭链接。C#里面的内存都是由垃圾回收器自动回收的。
wuyq11 2010-09-05
  • 打赏
  • 举报
回复
关闭连接的时候自动关闭DataReader对象,
如果执行过程中,不需要建别的DataReader,方法的内部不用关闭连接
连接被close时,其实是放入了连接池内

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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