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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董蒙蒙 中级黑马   /  2012-9-23 22:03  /  3114 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

连接数据库时,为什么要用using?

评分

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

查看全部评分

3 个回复

倒序浏览
  1. using(sqlconnection con = new sqlconnection("……"){

  2. }
复制代码
在using的范围内,打开连接,出了作用域,连接就被.net的回收机制自己关闭了

可以防止忘记关闭连接

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 杨进 于 2012-9-23 23:18 编辑

open:打开数据库连接
close:关闭数据库连接,不过close后还能再open
dispose:销毁连接(如果连接还没有被close,dispose会先自动调用close方法)
使用using的话,在出了using的作用域后会自动调用dispose方法

评分

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

查看全部评分

回复 使用道具 举报
using会自动调用new出来对象的Dispose方法,可以保证在各种情况下包括异常时都能释放非托管资源,数据库连接分配了非脱光资源,所以应该用using,
c#会把using编译成try/finally结构,在finally里调用using中表达式的对象的Dispose方法,如果没有Dispose方法则什么都不做
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马