Fra dokumenterne (for SQL Server kompakt, men stadig relevant):
I det første eksempel åbner du en forbindelse i et transaktionsomfang. I 2. melder du dig ikke.
Prøv at tilføje:
cmd.Connection.EnlistTransaction(Transaction.Current);
For at se, om det hjælper.