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

Dispose和Close区别.

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

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

用户输入两个整数,并将这两个整数相加。

用户输入两个整数,并将这两个整数相加。

提示用户输入两个整数,并将这两个整数相加。            Console.WriteLine("请输入第一个数字:");//提示用户输入第一个数字。...

构造函数

构造函数

构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。构造函数可以有参数,new对象的时候传递函数参数即可构造函数可以重载,也就是有多个参数不同的构造函数。如果不指定构造函数,则类有一个默认的无参构造函数。如果指...

继承

继承

定义类的时候不指定父类,则父类是Object类。Object类是任何类的直接或者间接父类。    class Program     {      &nbs...

静态成员和静态类

静态成员和静态类

全局变量。static类变量。不用new就能用的方法:static方法,static方法其实就是普通函数在static方法中可以调用其他static成员,但是不能调用非static成员。在非static方法中可以调用static成员。    class&nbs...