是否OledbConnection.Dispose()
关闭连接?
我知道SqlConnection
确实如此,但那又如何OledbConnection
呢?
是否OledbConnection.Dispose()
关闭连接?
我知道SqlConnection
确实如此,但那又如何OledbConnection
呢?
是的,它也可以。
来源:OleDbConnection.Dispose 方法(布尔值)
Dispose 方法调用 Close,并从连接池中删除 OleDbConnection。
有关详细信息,请参阅Remarks
参考链接上的部分以了解释放托管和非托管资源的情况。
是的,根据 MSDN http://msdn.microsoft.com/en-us/library/aa325890(v=vs.71).aspx上的文档,OleDbConnection.Dispose()
也确实调用了OleDbConnection.Close()
.
是的,它确实MSDN:
Dispose 方法调用 Close,并从连接池中删除 OleDbConnection。
请注意,以上内容来自 .NET Framework 1.1。但是(在这种情况下)你可以指望没有改变的事情。
此外,您几乎可以 100% 确定实现的每个类IDbConnection
都会“关闭”Dispose
方法中的连接——无论这对特定实现意味着什么都不相关,但它相当于Close
手动调用。
每个不以这种方式运行的实现都应被 IMO 视为已损坏。
这是最终证明..该Dispose
方法的实际代码,使用反射器拍摄:
// System.Data.OleDb.OleDbConnection
protected override void Dispose(bool disposing)
{
if (disposing)
{
this._userConnectionOptions = null;
this._poolGroup = null;
this.Close();
}
this.DisposeMe(disposing);
base.Dispose(disposing);
}
是的。如果没有,那么它就不能完全处置它的资源。BinaryReader、BinaryWriter 等也都关闭了底层流