Guardar datos mediante una transacción en aplicaciones de .NET Framework
Nota:
Los conjuntos de datos y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de la década de 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar los datos y conservar los cambios en la base de datos. Aunque los conjuntos de datos han demostrado ser una tecnología de gran éxito, se recomienda que las nuevas aplicaciones de .NET usen Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.
Los datos de una transacción se guardan mediante el espacio de nombres System.Transactions. Use el objeto TransactionScope para participar en una transacción que se administra automáticamente.
Los proyectos no se crean con una referencia al ensamblado System.Transactions, por lo que debe agregar manualmente una referencia a proyectos que usen transacciones.
La manera más fácil de implementar una transacción es crear una instancia de un objeto TransactionScope en una instrucción using
. (Para más información, consulte Instrucción using e Instrucción using). El código que se ejecuta dentro de la instrucción using
participa en la transacción.
Para confirmar la transacción, llame al método Complete como la última instrucción del bloque using.
Para revertir la transacción, inicie una excepción antes de llamar al método Complete.
Adición de una referencia a System.Transactions.dll
En el menú Proyecto, seleccione Agregar referencia.
En la
.NET
pestaña (pestaña de SQL Server para proyectos de SQL Server), seleccione System.Transactions y luego seleccione Aceptar.Se agrega al proyecto una referencia a System.Transactions.dll.
Guardado de los datos de una transacción
Agregue código para guardar datos dentro de la instrucción using que contiene la transacción. En el código siguiente se muestra cómo crear un objeto TransactionScope y crear una instancia de él en una instrucción using: