Compartir a través de


Guardar datos mediante una transacción en aplicaciones de .NET Framework

Nota:

La DataSet clase y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de los años 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras las aplicaciones están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar datos y conservar los cambios de nuevo en la base de datos. Aunque los conjuntos de datos son una tecnología probada de éxito, el enfoque recomendado para las nuevas aplicaciones .NET es usar 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. Usa el TransactionScope objeto 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 usan transacciones.

La manera más fácil de implementar una transacción es instanciar un TransactionScope objeto en una using declaración. (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, lance una excepción antes de llamar al método Complete.

Adición de una referencia a System.Transactions.dll

  1. En el menú Proyecto, seleccione Agregar referencia.

  2. En la .NET pestaña (pestaña SQL Server para proyectos de SQL Server), seleccione System.Transactions y, a continuación, seleccione Aceptar.

    Se agrega una referencia a System.Transactions.dll al proyecto.

Para guardar datos en 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 e instanciar un objeto TransactionScope en un enunciado using:

    using (System.Transactions.TransactionScope updateTransaction = 
        new System.Transactions.TransactionScope())
    {
        // Add code to save your data here.
        // Throw an exception to roll back the transaction.
    
        // Call the Complete method to commit the transaction
        updateTransaction.Complete();
    }