A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐传任 中级黑马   /  2012-9-16 21:42  /  1604 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在ADO.Net中,using与close(),dispose()分别是怎样实现释放内存的,他们的使用与达到的效果有什么不同?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

倒序浏览
刚开始学习的时候各种不解,后来稍微了解了一点,希望与你共勉,如果有的地方不正确,敬请指出。
using在除了作用域以后会自动调用dispose,Sqlconnection、FileStream等的Dispose内部都会做这样的判断:判断有没有close,如果没有close就先close再dispose。
Dispose是直接销毁链接,在Dispose内部会调用Close方法,防止多个连接占用资源;
Close是关闭连接,关闭连接以后还可以再打开。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
是的,con.close(),关闭后还可再con.open()打看,
con.close()适合在每一个连接SQL数据库之后执行,已关闭连接,
而con.Dispose要在最后执行,因为如果执行后就没了,

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马