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