Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/12/2011, 04:24
Cubino
 
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Como utilizar SqlTransaction

Cita:
Iniciado por edbc92 Ver Mensaje
Haber, para empezar el lugar adecuado del rollback es colocarlo a la hora que te agarra la excepción, para que no uses doble try...

Y bueno un ejemplo de una transacción es esta:

Código vb:
Ver original
  1. Dim cn as new sqlconnection(strcn)
  2. dim tx as sqltransaction
  3.  
  4. try
  5. cn.open
  6.  
  7. tx=cn.begintransaction
  8.  
  9. sql="insert into encabezadoFact values (@cod,@etc)"
  10.  
  11. dim cmd as new sqlcommand(sql,cn,tx) 'Fijate que se pasan estos 3 valores
  12. cmd.parameters.addwithvalue("@cod",lblcod.text)
  13.  
  14.  
  15.  
  16. cmd.parameters.addwithvalue("@etc",txtetc.text)
  17.  
  18. cmd.executenonquery
  19.  
  20. tx.commit
  21.  
  22. catch ex as exception
  23. tx.rollback
  24. msgbox(ex.message)
  25. finally
  26. cn.close
  27. end try

Quizás te aparezca algunos de esos con subrayado verde, algo que diga parecido a esto: Se hará caso omisa a la hora de ejecución; algo asi recuerdo...Ejecuta tu programa no pasa nada si es que aparece eso...

En fin, espero que te sirva...
Gracias por la respuesta.
Veras hice lo que me dijeron y tampoco. Cierro la conexión, la vuelvo abrir pero sigue saliendo el error de:
"ExecuteNonQuery requiere que el comando tenga una transacción cuando la conexión asignada al mismo esta en una transacción local pendiente. No se ha inicializado la propiedad transaction del comando"
La verdad es que no entiendo porque me pone esto si justo antes de asignar los valores del DataRow le digo a la base de datos que voy a comenzar una transacción y al command le asigno la transacción.
Porque me dice que el comando requiere una transacción si ya se la asigno.
El programa trabaja con un tabla que se muestra en un datagridview asociado a un DataAdapter en el que inserto una fila o cambio los valores de una fila i luego lanzo el DataAdapter.Update(DataTable)
A lo mejor esto puede seros de ayuda.
Gracias a todos por ayudarme