conn.close和conn.dispose有什么区别

lanbaibai 2004-03-27 09:54:52
我一个easy的问题,
sqlconnection conn =new sqlconnection
conn.close和conn.dispose有什么区别?各有什么好处?
...全文
599 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aderly 2004-03-27
  • 打赏
  • 举报
回复
DISPOSE这个方法是在需要内存时,但又不想启动垃圾回收器时用,因为垃圾回收器启动比较占用CPU资源
HNU 2004-03-27
  • 打赏
  • 举报
回复


前者都说得没错,释放了连接资源。

后者Dispose();我的印象中是表示废弃conn,并没有马上释放内存资源,需要等到下一次垃圾回收的时候才真正从内存中清除掉,所以一般情况下,你并不需要使用这个方法。
xjliang007 2004-03-27
  • 打赏
  • 举报
回复
前者只是關閉連接﹐而后者將連接從內存中清除
erictang2003 2004-03-27
  • 打赏
  • 举报
回复
如果你只是完成一个操作,就conn.Close();
如果不再需要数据库操作,就必须:conn.Close();conn.Dispose();


lanbaibai 2004-03-27
  • 打赏
  • 举报
回复
我现在是这样写的
conn.close
conn.dispose
应该没有问题吧?
或者写
conn.close即可?
erictang2003 2004-03-27
  • 打赏
  • 举报
回复
conn.Close() 是关闭连接,实际上是把连接放回ADO.NET的连接池,并没有真正关闭,所以再次连接时只是把连接从池中拿出来用,速度很快.

conn.Dispose() 是销毁连接,彻底关闭.
ajqc 2004-03-27
  • 打赏
  • 举报
回复
close是关掉连接,dispose是在没有引用时释放这个Sqlconnection对象,但对于数据库来说,应该是没有关了这连接的。不要用后者,个人建议,连用是引用型,除非关了此窗或到下一轮清理内存时,不然,内存没清,反而连接是开着的,想想就知道了,不严谨的编程,万一你后面来个restore操作,你马上就知道错了
lanbaibai 2004-03-27
  • 打赏
  • 举报
回复
conn.dispose也能管理数据库连接。
AngelGavin 2004-03-27
  • 打赏
  • 举报
回复
前者是释放数据库资源
后者是释放程序占用的资源
好像是吧
北京的雾霾天 2004-03-27
  • 打赏
  • 举报
回复
conn.close是用来关闭和数据库的连接,相对于open,
conn.dispose是用来释放对象的所在内存,相对于new Sqlconnection();
只用dispose是不能关闭Connection的,两者不是一回事,只用Close也不能释放它所占的内存.
hertcloud 2004-03-27
  • 打赏
  • 举报
回复
前者 关闭 连接 但是conn还存在
后者是将conn从内存 清楚

111,080

社区成员

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

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

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