Dispose和Close区别.
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作用域就自动释放了链接。