Problemas con SQLTransaction

tema enviado por Hiatomx en C#
tema iniciado el 30/03/2011
Hola, mi duda es la siguiente: Requiero hacer varios inserts dentro de una tabla en SQLServer. Tengo varias clases: Clase A Clase B Clase C Clase Funciones. Dentro de clase funciones genero los objetos A,B y C. Dependiendo varias condiciones, despues de crear A, se puede crear varios objetos B y uno o varios objetos C. Dentro de la clase A, B y C hay una clase que genera el query. Esta es la estructura: public insertar(SqlTransaction transaction){ sql = "UPDATE ..."; try{ SqlCommand _command = new SqlCommand(); _command.Connection = transaction.Connection; _command.CommandType = CommandType.Text; _command.CommandText = sql; _command.Transaction = transaction; _command.ExecuteNonQuery(); }catch (Exception ex){ } } Dentro de la clase Funciones tengo el metodo que genera el Transaction: public SqlTransaction CreateTransaction(){ try{ SqlConnection _connection; _connection = new SqlConnection ("Data Source=...;Initial Catalog=...;User Id=...;Password=..."); _connection.Open(); SqlTransaction _transaction = _connection.BeginTransaction(); return _transaction; }catch{ throw; } } Y dentro de funciones tengo un try donde van la generacion de los objetos y la llamada a insertar(), y hasta al final tengo el commit. SqlTransaction _transaction = CreateTransaction(); try{ A(); A.insertar(_transaction); B(); B.insertar(_transaction); C(); C.insertar(_transaction); _transaction.commit(); }catch(){ _transaction.Rollback(); } El problema surge cuando al momento de insertar B me manda el siguiente error: System.InvalidOperationException: SqlTransaction se completo, ya no se puede utilizar. Si me pueden ayudar se los agradeceré mucho. Gracias.