当前位置:首页 > C#学习

Dispose和Close区别.

小道7年前 (2018-08-28)C#学习4773

Dispose和Close区别:

            SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=false");
            conn.Open();//打开数据库
            /* ...写上执行的语句...*/
            conn.Close();//关闭数据库。下面可以在 使用 conn.Open();//重新打开数据库
            conn.Dispose();//销毁数据库连接,下面无法在使用 conn.Open();//重新打开数据库。


Close:可以比喻为一个商店停业整顿,但可以通过整改重新开放。商店还是那个商店,营业执照什么的都可以用。

Dispose:是破产,营业执照什么的都注销了。想要重新开放。只能重新注册营业执照什么的,重头开始。

Close是临时关门Dispose是直接破产。


为什么直接用using?


using是为了出了作用域以后系统自动调用Dispose,Sqlconnection、FileStream等的Dispose内部都会做这样的判断,判断是否有Close,如果没有Close就先Close再Dispose。


比如不是用using。在执行过程中出现错误,无法执行到Close和Dispose语句,就无法释放连接。而使用using如果发生错误,退出了using作用域就自动释放了链接。

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/83.html

分享给朋友:

“Dispose和Close区别.” 的相关文章

类型转换Cast和Convert

类型转换Cast和Convert

把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。a=b,b是源,a是目标。隐式转换、显式转换。当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换;如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显式转换(程序员自己负责)。比如:把中国人转换为人是隐式转换,把人转换为中国…

面向对象概念

面向对象概念

面向对象不是取代面向过程的。类、对象。“人”是类,“张三”是“人”这个类的对象。类是抽象的,对象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实例(Instance)。类就像int,对象就像10。字段Field(和某个对象相关的变量),字段就是类的状态。人这个类有姓名、年龄、身高等字段。类…

异常与异常处理

异常与异常处理

传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。陈摄影师以为文件已经被删除造成的麻烦。错误码的缺点:不处理则很难发现,每次处理则很麻烦;难以看出错误的原因;容易使得程序进入不确定状态。try catch。Exception ex 异常也是…

命名空间namespace

命名空间namespace

namespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。在代码中使用其他类的时候需要using类所在的namespace。System.Collections.ArrayList,快速引入的方法,右键→解析(Ctrl+.)。为什么使用Convert、Console等类不需要自己写…