OledbConnection.Dispose()是否关闭连接?

可能重复:
如果使用using子句,是否需要关闭DbConnection?

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认为是破碎的。

是。 如果没有,那么就无法完全处理它的资源。 BinaryReader,BinaryWriter等也都关闭了底层流

这是最终certificate.. Dispose方法的实际代码,使用reflection器:

 // 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); }