Buenas!
Este es el método que hice para ejecutar el uno o varios comandos en una misma transacción:
Código vb.net:
Ver originalPublic Shared Sub EjecutarTransaccion(ByVal ListaComandosSQL As List(Of SqlCommand))
Dim Conn As New SqlConnection(Entorno.ConnStr)
Conn.Open()
Dim miTrans As SqlTransaction = Conn.BeginTransaction
Try
For Each miComando As SqlCommand In ListaComandosSQL
miComando.Connection = Conn
miComando.Transaction = miTrans
miComando.ExecuteNonQuery()
Next
miTrans.Commit()
Catch ex As Exception
miTrans.Rollback()
Throw New Exception(ex.Message)
End Try
Conn.Dispose()
End Sub
Ahora la cosa será, desde los demás métodos, simplemente construir los comandos con sus parámetros, y cuando los tenga, pasárselo/s a este método para que los ejecute en una transacción.
Cualquier cosa "rara" que veais, o cualquier consejo al respecto, es bien recibido.
Un saludo!