Visual Basic .NET - Realizar una transacción
Written by lopezatienza on 17 Mayo 2010 – 11:18 -Hola a todos.
En este artículo voy a explicar cómo realizar una transacción desde Visual Basic .NET.
Esto es muy importante para poder dejar la base de datos en el estado original antes de realizar cualquier modificación, si ocurre algún error al ejecutar algunas sentencias DML, o por algún fallo del código de programación.
Hay que tener en cuenta que esto es necesario al realizar más de una sentencia DML, ya que las sentencias de inserción, modificación y borrado ya son Transacciones, y no tendría sentido introducir esta sentencia dentro de una Transacción.
El ejemplo que pongo es para acceder a SQL Server, (para otras bases de datos revisar los diferentes namespaces disponibles), por lo que debemos importar los namespaces:
Imports System.Data
Imports System.Data.SqlClient
La función a llamar sería la siguiente:
Public Function EjecutarTransaccion() As Boolean Dim retVal As Boolean = False
Dim conexion As SqlConnection = Nothing
Dim comando As New SqlCommand
Dim comando2 As New SqlCommand
Dim transaccion As SqlTransaction = Nothing
Try
conexion = New SqlConnection("NuestroConnectionString")
conexion.Open()
transaccion = conexion.BeginTransaction()
comando.Connection = conexion
comando.Transaction = transaccion
comando.CommandType = CommandType.Text
comando.CommandText = "UPDATE Region SET RegionID = 1, RegionDescription = 'East' WHERE RegionID = 1"
comando.ExecuteNonQuery()
comando2.Connection = conexion
comando2.Transaction = transaccion
comando2.CommandType = CommandType.Text
comando2.CommandText = "UPDATE Region SET RegionID = 2, RegionDescription = 'East' WHERE RegionID = 2"
comando2.ExecuteNonQuery()
transaccion.Commit()
transaccion = Nothing
conexion.Close()
conexion = Nothing
retVal = True
Catch ex As Exception
If (Not IsNothing(transaccion)) Then
transaccion.Rollback()
transaccion = Nothing
End If
If (Not IsNothing(conexion)) Then
conexion.Close()
conexion = Nothing
End If
retVal = False
End Try
Return retVal
End Function
Un saludo y espero os sirva de ayuda.
Tags: Visual Basic
Posted in Visual Basic .NET |
