The transaction can be rolled back only from a pending state (after OdbcConnection.BeginTransaction has been called, but before OdbcTransaction.Commit is called). The transaction will be rolled back in the event it is disposed before Commit or Rollback is called.