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Á

Preguntas similare

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Á
Respuesta Responder a este mensaje
#2 Ivan Kuchler Aguila
27/04/2004 - 15:40 | Informe spam
Es una varible retornada por el procedimiento almacenado
que indica si este se ejecuto bien o no, si es mayor a
cero significa que ocurrio un error y que no puede
continuar ejecutando los siguientes procedimientos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida