public override void Commit() { if (transaction == null) throw new InvalidOperationException ("Call BeginTransaction first"); try { transaction.Commit (); connection.Close (); } finally { transaction = null; connection = null; } }