新手提问
时间:2011-12-13
来源:互联网
using (ds = new DataSet()) { da = new SqlDataAdapter(sql, StrConn); da.Fill(ds); return ds; } ds = new DataSet(); da = new SqlDataAdapter(sql, StrConn); da.Fill(ds); return ds;
请问高手们这两种写法有什么区别?先谢过!
作者: f152520843 发布时间: 2011-12-13
作者: bdmh 发布时间: 2011-12-13
你的结果应该是可以返回的,但在使用过程中注意的是,第一种ds的作用域在{}之间
那除了作用域外没什么区别了吗?
作者: f152520843 发布时间: 2011-12-13
作者: hefeng_aspnet 发布时间: 2011-12-13
ds手动释放
作者: lvmeng0206 发布时间: 2011-12-13
引用 1 楼 bdmh 的回复:
你的结果应该是可以返回的,但在使用过程中注意的是,第一种ds的作用域在{}之间
那除了作用域外没什么区别了吗?
出了using作用域ds会释放掉,
相当调用了Dispose()
作者: ohkuy 发布时间: 2011-12-13
using 相当于try catch
那出错怎么抛出异常?
作者: f152520843 发布时间: 2011-12-13
作者: xiaotiange 发布时间: 2011-12-13
作者: xiaotiange 发布时间: 2011-12-13
引用 2 楼 f152520843 的回复:
引用 1 楼 bdmh 的回复:
你的结果应该是可以返回的,但在使用过程中注意的是,第一种ds的作用域在{}之间
那除了作用域外没什么区别了吗?
出了using作用域ds会释放掉,
相当调用了Dispose()
那第二段什么时候才会释放?
作者: f152520843 发布时间: 2011-12-13
作者: open24hours 发布时间: 2011-12-13
使用Using代码块,可以自动调用ds的Dispose方法,而非try...catch...finally
和7楼说的相反啊!
作者: f152520843 发布时间: 2011-12-13
作者: MicroStationFan 发布时间: 2011-12-13
前者一出了using块就立刻释放ds。而后者需要依靠.NET的垃圾回收机制来释放ds(具体释放时间是不好事先确定的)。这就是两种写法的主要区别。
作者: yanbuodiao 发布时间: 2011-12-13
引用 10 楼 open24hours 的回复:
使用Using代码块,可以自动调用ds的Dispose方法,而非try...catch...finally
和7楼说的相反啊!
后者出现异常,如果没有捕获机制 直接报到界面上 然后由GC统一回收
作者: yanbuodiao 发布时间: 2011-12-13
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28