我注意到该SQLiteConnection
对象System.Data.SQLite
拥有两个类似的方法:
Close()
Dispose()
对象也一样SQLiteDataReader
。
有什么区别 ?
我注意到该SQLiteConnection
对象System.Data.SQLite
拥有两个类似的方法:
Close()
Dispose()
对象也一样SQLiteDataReader
。
有什么区别 ?
Dispose
如果连接没有关闭,也会关闭连接,但是在调用 时Close
,您可以再次重新打开连接。当连接被释放时,这是不可能的。
通常,不要调用Close
,而只是通过将连接的创建包装在using
块中来隐式调用 dispose:
using (var connection = new SqlConnection(...))
{
// use connection here.
} // connection gets closed and disposed here.
Connection.Close() 将简单地关闭与连接字符串中定义的服务器的连接。在此之后可以使用/重新打开连接。
Connection.Dispose()
将完全清理,删除所有非托管资源,防止再次使用该连接。一旦调用了处理,您就不应再尝试使用该对象。在Dispose(),
Close()` 中肯定也会被调用。
如果可能的话,我会推荐using
使用这样的语法,以确保正确清理内容:
using(SqlLiteConnection conn = new SqlLiteConnection(...))
{
// Do work here
}
这将自动为您处理连接,无论是否引发异常。