private void Close() { //aResultsを破棄する if (_aResults != null) { _aResults.Dispose(); _aResults = null; } //トランザクションを終了する(Dispose()のみ行う) if (_aDbTransaction != null) { _aDbTransaction.Dispose(); //DbTransactionを解放する _h_DbTransaction.Free(); _aDbTransaction = null; } //DBから切断する if (_aDbConnection != null) { _aDbConnection.Close(); _aDbConnection.Dispose(); //DbConnectionを解放する _h_DbConnection.Free(); _aDbConnection = null; } }
protected override void DisposeImp(bool disposing) { try { if (_aResults != null) { _aResults.Dispose(); _aResults = null; } } catch (Exception ex) { //GCによる回収時には例外を送出しない if (disposing) { _aTran.Rollback(); throw new DbAccessException("Resultsオブジェクトの破棄に失敗しました", ex); } } }