public void Rollback() { lock (this.db) { if (this.state == TransactionState.NoTransaction) { throw new IscException( IscCodes.isc_arg_gds, IscCodes.isc_tra_state, this.handle, "no valid"); } this.state = TransactionState.TransactionRollbacking; int[] statusVector = FesConnection.GetNewStatusVector(); int trHandle = this.handle; FbClient.isc_rollback_transaction(statusVector, ref trHandle); this.handle = trHandle; this.db.ParseStatusVector(statusVector); this.db.TransactionCount--; if (this.Update != null) { this.Update(this, new EventArgs()); } this.state = TransactionState.NoTransaction; } }