当前位置:首页 > C#学习 > 正文内容

Dispose和Close区别.

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

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区别.” 的相关文章

枚举enum

枚举enum

确定数量、确定值的几个取值:东西南北、男女、上中下。和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。namespace 枚举//命名空间 {     enum xb { 男, 女...

字符串的分割:从日期字符串("2008-08-08")中分析出年、月、日;

字符串的分割:从日期字符串("2008-08-08")中分析出年、月、日;

string[] Split(params char[] separator):将字符串按照指定的分割符分割为字符串数组;string[] Split(char[] separator, StringSplitOptions options)将字符串按照指定的char分割符分割为字符串数组( opt...

机器人:具有模糊判断

机器人:具有模糊判断

自己动手写聊天机器人,能够回答不同城市的天气、回答感情问题、问的次数过多还会饿死,提问可以模糊提问(包含指定关键词)。问“天气:北京”就回复“今天北京天气很好。”。        static void&nbs...

对象的引用

对象的引用

int、decimal、bool、byte等基础类型(值类型)是传递拷贝;对象(引用类型)则是传递引用。(引用类型包括:类、数组、接口、string)因为基础类型不怎么占内存,而对象则比较占内存。    class Program  &n...