Foros del Web » Programación para mayores de 30 ;) » .NET »

manejar BeginTransaction, Commit y RollBak en ASP.NET

Estas en el tema de manejar BeginTransaction, Commit y RollBak en ASP.NET en el foro de .NET en Foros del Web. Estoy tratando de manejar esos conceptos, pero no he podido. Miren mi código: Código: cnn.Open() daDataAdapter.DeleteCommand = New SqlClient.SqlCommand daDataAdapter.DeleteCommand.Transaction.Connection.BeginTransaction() strSQL = "Delede from TipoSolicitud ...
  #1 (permalink)  
Antiguo 27/07/2004, 08:29
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Pregunta manejar BeginTransaction, Commit y RollBak en ASP.NET

Estoy tratando de manejar esos conceptos, pero no he podido. Miren mi código:

Código:
cnn.Open()
daDataAdapter.DeleteCommand = New SqlClient.SqlCommand
daDataAdapter.DeleteCommand.Transaction.Connection.BeginTransaction()

	strSQL = "Delede from TipoSolicitud Where tsCodigoSolicitud = " & Grid.DataKeys(e.Item.ItemIndex)
	daDataAdapter.DeleteCommand.CommandText = strSQL

	daDataAdapter.DeleteCommand.ExecuteNonQuery()


	strSQL = "Delede from EncargadosSolicitud Where tsCodigoSolicitud = " & Grid.DataKeys(e.Item.ItemIndex)
	daDataAdapter.DeleteCommand.CommandText = strSQL

	daDataAdapter.DeleteCommand.ExecuteNonQuery()

daDataAdapter.DeleteCommand.Transaction.Commit()
cnn.Close()
En la línea en la cual intento hacer BeginTransaction me da el siguiente error:
Cita:
Object reference not set to an instance of an object.
pero si se dan cuenta yo estoy creando mi objeto en esta línea:
Código:
daDataAdapter.DeleteCommand = New SqlClient.SqlCommand
QUe estoy haciendo mal?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 27/07/2004, 09:38
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Porque no lo intentas de ésta manera

Cita:
...
...
Dim myTrans As SqlTransaction
myTrans = cnn.BeginTransaction
try
dAdap.DeleteCommand.Transaction = myTrans
...
...
myTrans.Commit()
catch e as Exception
myTrans.Rollback()
...
....
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 18/08/2004, 07:07
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Estoy confundido... y cómo lo hago si tengo varios update, select, insert y delete, como hago para que todos pertenezcan a ese benegintransaction y al final todos hagan commit?

Además, como creo la el obtejo en si, intenté poniendo
Dim myTrans As SqlClient.SqlTransaction =new SqlClient.SqlTransaction
y me da error
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--

Última edición por RsOfT; 18/08/2004 a las 07:20
  #4 (permalink)  
Antiguo 18/08/2004, 12:58
 
Fecha de Ingreso: julio-2004
Ubicación: Gómez Palacio, Durango, México
Mensajes: 132
Antigüedad: 19 años, 9 meses
Puntos: 0
Espero que este enlace te despeje algunas dudas:

http://msdn.microsoft.com/library/sp...lbacktopic.asp
  #5 (permalink)  
Antiguo 08/09/2004, 06:38
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Como yo pregunta si una transaación ya tiene el commit? y no me haga el roolback?


Lo que pasa es que mi aplicación luego de hacer el update y el insert que debe de hacer realiza otra operación que no tiene que ver con la base de datos, pero en esa parte dio un error y me fue al Catch en donde tengo myTrans.Rollback() pero me da error ya que el commit se había ejecutado ya.

Qué me dicen?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #6 (permalink)  
Antiguo 08/09/2004, 06:44
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
lo resolví asi:
If myTrans Is Nothing Then
myTrans.Rollback()
End If

__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.