数据库中的using语句,以及与try……catch……finally的关系
2024-08-28 16:11:17
每new一个对象,就会开辟一块资源。using(我们new的对象){……},“}”处自动释放占用的资源(即调用Dispose方法)。等效于fianlly中调用Dispose方法。
Dispose内部会自动判断有无close,如果有,会自动先close,然后Dispose。
所以using可以不用再写close、dispose。
try……catch语句,catch可以抛出异常,让我们直接看到。
所以想要看到异常,用try……catch。
想要手动释放资源,用try……catch……finally,在finally中dispose。
想要自动释放资源,用using。
using(Sqlconnection con = new SqlConnection())
{
//代码执行块,末尾处省去conn.Close()、conn.Dispose()
}
close与dispose区别:
conn.Open()
conn.Close()
conn.Open()//这是可以的
-----------------------
conn.Open()
conn.Close()
conn.Dispose()
conn.Open() //出错
可见dispose就是将conn毁掉,不能再用
最新文章
- node.js学习(三)简单的node程序&;&;模块简单使用&;&;commonJS规范&;&;深入理解模块原理
- HTML Select 标签选择后触发jQuery事件代码实例
- robotframework,selenium启动不了打不开浏览器的问题访问不了网页
- C# API项目代码正确 ,页面出不来的问题
- ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
- Information retrieval信息检索
- JS,CSS,HTML制作网页首页,视频轮播,隐藏点击等等。
- Android 获取天气预报
- 开发工具安装运行bug总结
- xcode教程,MAC常用命令
- Linq to object 技巧、用法集锦
- 31、Thinking in Java
- C#.NET的微信功能开发学习
- 你的float用对了吗
- 【Unity与23种设计模式】备忘录模式(Memento)
- CRM项目测试第一天
- 超具体Windows版本号编译执行React Native官方实例UIExplorer项目(多图慎入)
- Egret IDE中搜索,过滤文件,只搜索.ts
- swagger ui js 错误:Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'.
- (转)Mysql数据库主从心得整理