Csharp/C#教程:connection.Close()和connection.Dispose()有什么区别?分享


connection.Close()和connection.Dispose()有什么区别?

我注意到System.Data.SQLite中的SQLiteConnection对象拥有两个类似的方法:

对于SQLiteDataReader对象也是如此。

有什么不同 ?

如果连接尚未关闭, Dispose也会关闭连接,但是当调用Close ,您可以再次重新打开连接。 当处理连接时,这是不可能的。

通常,不要调用Close ,而只需通过在using块中包装连接的创建来隐式调用dispose:

 using (var connection = new SqlConnection(...)) { // use connection here. } // connection gets closed and disposed here. 

Connection.Close()将简单地关闭连接字符串中定义的服务器连接。 在此之后可以使用/重新打开Connection。

Connection.Dispose()将完全清理,删除所有非托管资源,防止再次使用Connection。 一旦被调用,您就不应该再尝试使用该对象了。 在Dispose(), Close()`肯定也会被调用。

如果可能的话,我建议using的using语法,以确保正确清理事物:

 using(SqlLiteConnection conn = new SqlLiteConnection(...)) { // Do work here } 

无论抛出exception,这都会自动为您处理连接。

上述就是C#学习教程:connection.Close()和connection.Dispose()有什么区别?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/951893.html

(0)
上一篇 2021年11月19日
下一篇 2021年11月19日

精彩推荐