I have two SQLConnection objects having the same connection string and
two corresponding SQLCommand objects for each connection object. I am
using SQLTransaction with the first SQLConnection object but the second
SQLConnection object does not have any SQLTransaction object.
I am inserting some data using the two command objects. The problem
happens when I try to do a rollback on the SQLTransaction object. The
rollback happens only before the first insert happens with the second
connection object. After that, the rollback does not happen.
here is the code snippet:
Dim cnTracker As New
SqlConnection(S ystem.Configura tion.Configurat ionSettings.App Settings.Item(" sqlconntracker" ))
Dim cmdTracker As New SqlCommand
Dim transTracker As SqlTransaction
Dim cnError As New
SqlConnection(S ystem.Configura tion.Configurat ionSettings.App Settings.Item(" sqlconntracker" ))
Dim cmdError As New SqlCommand
cnTracker.Open( )
cmdTracker.Conn ection = cnTracker
transTracker = cnTracker.Begin Transaction(Iso lationLevel.Rea dCommitted)
cmdTracker.Tran saction = transTracker
cnError.Open()
cmdError.Connec tion = cnError
'this gets rolled back correctly
cmdTracker.Comm andType = CommandType.Tex t
cmdTracker.Comm andText = "INSERT INTO Table1 (Field1) VALUES(1)"
cmdTracker.Exec uteNonQuery()
cmdError.Comman dType = CommandType.Sto redProcedure
cmdError.Comman dText = "spImportColErr or"
cmdError.Parame ters.Add(New SqlParameter("@ DestColName",
enumDestCols.Va lue))
cmdError.Parame ters.Add(New SqlParameter("@ tblImp", "tblImport" ))
cmdError.Parame ters.Add(New SqlParameter("@ fldImp", "FieldImpor t"))
cmdError.Execut eNonQuery()
'this does NOT gets rolled back!!!!
cmdTracker.Comm andType = CommandType.Tex t
cmdTracker.Comm andText = "INSERT INTO Table1 (Field1) VALUES(2)"
cmdTracker.Exec uteNonQuery()
transTracker.Ro llback()
two corresponding SQLCommand objects for each connection object. I am
using SQLTransaction with the first SQLConnection object but the second
SQLConnection object does not have any SQLTransaction object.
I am inserting some data using the two command objects. The problem
happens when I try to do a rollback on the SQLTransaction object. The
rollback happens only before the first insert happens with the second
connection object. After that, the rollback does not happen.
here is the code snippet:
Dim cnTracker As New
SqlConnection(S ystem.Configura tion.Configurat ionSettings.App Settings.Item(" sqlconntracker" ))
Dim cmdTracker As New SqlCommand
Dim transTracker As SqlTransaction
Dim cnError As New
SqlConnection(S ystem.Configura tion.Configurat ionSettings.App Settings.Item(" sqlconntracker" ))
Dim cmdError As New SqlCommand
cnTracker.Open( )
cmdTracker.Conn ection = cnTracker
transTracker = cnTracker.Begin Transaction(Iso lationLevel.Rea dCommitted)
cmdTracker.Tran saction = transTracker
cnError.Open()
cmdError.Connec tion = cnError
'this gets rolled back correctly
cmdTracker.Comm andType = CommandType.Tex t
cmdTracker.Comm andText = "INSERT INTO Table1 (Field1) VALUES(1)"
cmdTracker.Exec uteNonQuery()
cmdError.Comman dType = CommandType.Sto redProcedure
cmdError.Comman dText = "spImportColErr or"
cmdError.Parame ters.Add(New SqlParameter("@ DestColName",
enumDestCols.Va lue))
cmdError.Parame ters.Add(New SqlParameter("@ tblImp", "tblImport" ))
cmdError.Parame ters.Add(New SqlParameter("@ fldImp", "FieldImpor t"))
cmdError.Execut eNonQuery()
'this does NOT gets rolled back!!!!
cmdTracker.Comm andType = CommandType.Tex t
cmdTracker.Comm andText = "INSERT INTO Table1 (Field1) VALUES(2)"
cmdTracker.Exec uteNonQuery()
transTracker.Ro llback()
Comment