Transacciones en C#

27/04/2004 - 00:25 por Iván Kuchler Aguila | Informe spam
Hola a todos,
Tengo el siguiente problemilla que no puedo resolver,
estoy trabajando con transacciones en c# ya antes lo
havia hecho, pero siempre solo con un solo procedimiento
almacenado, ahora tengo tres que deben estar bajo la
misma transaccion, pero me manda el siguiente error

Execute requiere que el comando tenga un objeto de
transacción cuando la conexión asignada al comando está
en una transacción local pendiente. No se ha inicializado
la propiedad Transaction del comando.

Tengo la siguientes estructura en el codigo C#

sqlConnection.open();
trans = sqlConnection.BeginTransaction();
sp1.Transaction = trans;
sp2.Transaction = trans;
sp3.Transaction = trans;
try
{
sp1 parametros
sp1.ExecuteNonQuery();
if(error > 0)throw new system.Exception("bllablabla");

sp2 parametros
sp2.ExecuteNonQuery();
if(error > 0)throw new system.Exception("bllablabla");

sp3 parametros
sp3.ExecuteNonQuery();
if(error > 0)throw new system.Exception("bllablabla");


trans.Commit();
}
catch(exception p)
{
Console.WriteLine(p.Message)
Trans.Rollback();
}
finally
{
sqlConection.Close();
}

alguien me puede decir en donde tengo mi error.

Gracias y saludos desde PANAMÁ
 

Leer las respuestas

#1 Octavio Hernandez
27/04/2004 - 02:03 | Informe spam
Iván,

A priori todo parece correcto. Los comandos tienen una transacción asignada.
¿Qué es eso de error > 0?

Salu2,

Octavio

"Iván Kuchler Aguila" escribió en el
mensaje news:48e901c42bdd$583b61f0$
Hola a todos,
Tengo el siguiente problemilla que no puedo resolver,
estoy trabajando con transacciones en c# ya antes lo
havia hecho, pero siempre solo con un solo procedimiento
almacenado, ahora tengo tres que deben estar bajo la
misma transaccion, pero me manda el siguiente error

Execute requiere que el comando tenga un objeto de
transacción cuando la conexión asignada al comando está
en una transacción local pendiente. No se ha inicializado
la propiedad Transaction del comando.

Tengo la siguientes estructura en el codigo C#

sqlConnection.open();
trans = sqlConnection.BeginTransaction();
sp1.Transaction = trans;
sp2.Transaction = trans;
sp3.Transaction = trans;
try
{
sp1 parametros
sp1.ExecuteNonQuery();
if(error > 0)throw new system.Exception("bllablabla");

sp2 parametros
sp2.ExecuteNonQuery();
if(error > 0)throw new system.Exception("bllablabla");

sp3 parametros
sp3.ExecuteNonQuery();
if(error > 0)throw new system.Exception("bllablabla");


trans.Commit();
}
catch(exception p)
{
Console.WriteLine(p.Message)
Trans.Rollback();
}
finally
{
sqlConection.Close();
}

alguien me puede decir en donde tengo mi error.

Gracias y saludos desde PANAMÁ

Preguntas similares