ASP.NET - trans.Rollback | Use of unassigned local variable

 
Vista:

trans.Rollback | Use of unassigned local variable

Publicado por Andres (4 intervenciones) el 31/03/2006 00:50:15
Hola Como estan un saludo, estoy aqui de nuevo para preguntar algo raro no se que digan ustedes, estoy trantando de hacer manejo de transacciones, al querer hacer uno para la capa DAL que estoy modificando del wizard que crea .net no tengo errores de codigo pero si me sale un error Use of unassigned local variable 'trans' la verdad no se ha que se refiere porque la declaracion de trans esta fuera del try

Bueno un saludo a todos, si alguien sabe por que es esto se los agradezco..

public void SaveCategoria(Categoria_DS ds)
{
SqlTransaction trans;

try
{

sqlConnection1.Open();
trans = sqlConnection1.BeginTransaction("Categoria");
sqlDataAdapter1.UpdateCommand.Transaction = trans;
sqlDataAdapter1.InsertCommand.Transaction = trans;
sqlDataAdapter1.DeleteCommand.Transaction = trans;

this.sqlDataAdapter1.Update(ds);

trans.Commit();
ds.AcceptChanges();

}
catch(Exception ex)
{
trans.Rollback("Categoria"); //[Aqui me dice Use of unassigned local variable 'trans']
throw new Exception(ex.ToString());
}
finally
{
sqlConnection1.Close();
}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:trans.Rollback | Use of unassigned local variab

Publicado por Juan Diego (1 intervención) el 17/04/2006 14:29:08
Ten en cuenta que cuando declaras la variable trans, no le asignas ningún valor. Si ocurriera una excepción al hacer

sqlConnection1.Open();

saltaría al bloque catch, donde se maneja la excepción. Entonces la instrucción

trans.Rollback("Categoria");

fallaría porque trans no ha sido inicializada en ningún momento (sería null)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:trans.Rollback | Use of unassigned local variab

Publicado por Andre (1 intervención) el 18/04/2006 23:01:30
Hola juan Gracias por tu respuesta, pues a la final he dejado asi la funcion, me compila bien solo que no se que pasaria en caso de que se produzca un error pues no se como invocar un error rollback para hacer la prueba, Gracias

public void SaveCategoria(Categoria_DS ds)
{
SqlTransaction trans = null;

try
{

trans = sqlConnection1.BeginTransaction("Categoria");
sqlDataAdapter1.UpdateCommand.Transaction = trans;
sqlDataAdapter1.InsertCommand.Transaction = trans;
sqlDataAdapter1.DeleteCommand.Transaction = trans;

this.sqlDataAdapter1.Update(ds);

trans.Commit();
ds.AcceptChanges();

}
catch(Exception ex)
{
trans.Rollback("Categoria"); //[Aqui me dice Use of unassigned local variable 'trans']
throw new Exception(ex.ToString());
}
finally
{
sqlConnection1.Close();
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar