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

时间:2012-08-20 08:10:26

标签: c# .net dispose oledbconnection

  

可能重复:
  Is there any need to close a DbConnection if a using clause is used?

OledbConnection.Dispose()关闭连接吗?

我知道SqlConnectionOledbConnection呢?

5 个答案:

答案 0 :(得分:3)

是的,也是。

来源:OleDbConnection.Dispose Method (Boolean)

  

Dispose方法调用Close,并从中删除OleDbConnection   连接池。

有关详细信息,请参阅参考链接上的Remarks部分,以了解有关释放托管和非托管资源的情况。

答案 1 :(得分:2)

是的,根据MSDN http://msdn.microsoft.com/en-us/library/aa325890(v=vs.71).aspx上的文档,OleDbConnection.Dispose()也会调用OleDbConnection.Close()

答案 2 :(得分:1)

是的MSDN

  

Dispose方法调用Close,并从连接池中删除OleDbConnection。

注意,以上内容来自.NET Framework 1.1。但是(在这种情况下)你可以指望没有改变的事情。

此外,您几乎可以100%确定实现IDbConnection的每个类都将“关闭”Dispose方法中的连接 - 无论对于特定实现的意义是什么都不相关,但它相当于手动调用Close

每个不采取这种行为的实施都应该被IMO认为是破碎的。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

这是终极证据.. 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);
}