8

重複の可能性:
using 句が使用されている場合、DbConnection を閉じる必要はありますか?

OledbConnection.Dispose()接続を閉じますか?

私はそれを知ってSqlConnectionいますが、どうOledbConnectionですか?

4

5 に答える 5

5

はい、そうです。

ソース: OleDbConnection.Dispose メソッド (ブール値)

Dispose メソッドは Close を呼び出し、接続プールから OleDbConnection を削除します。

詳細についてはRemarks、参照リンクのセクションを参照して、管理対象リソースと非管理対象リソースの両方を解放する場合について確認してください。

于 2012-08-20T08:14:26.703 に答える
3

はい、 MSDN http://msdn.microsoft.com/en-us/library/aa325890(v=vs.71).aspxのドキュメントによるとOleDbConnection.Dispose()OleDbConnection.Close().

于 2012-08-20T08:16:11.257 に答える
2

はい、MSDN :

Dispose メソッドは Close を呼び出し、接続プールから OleDbConnection を削除します。

上記は .NET Framework 1.1 のものであることに注意してください。しかし、(この場合) 変更されていないことを期待できます。

IDbConnectionまた、実装するすべてのクラスがメソッド内の接続を「閉じる」ことをほぼ 100% 確信できますDispose。特定の実装にとってそれが何を意味するかは関係ありませんが、Close手動で呼び出すのと同じです。

そのように動作しないすべての実装は、IMO が壊れていると見なす必要があります。

于 2012-08-20T08:15:26.883 に答える
1

これが究極の証拠です..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);
}
于 2012-08-20T08:16:01.620 に答える
0

はい。そうでない場合、そのリソースを完全に破棄することはできません。BinaryReader、BinaryWriter などはすべて、基になるストリームも閉じます

于 2012-08-20T08:12:48.673 に答える