Partager via


Enregistrer des données à l’aide d’une transaction dans des applications .NET Framework

Remarque

La DataSet classe et les classes associées sont des technologies .NET Framework héritées du début des années 2000 qui permettent aux applications d’utiliser des données en mémoire pendant que les applications sont déconnectées de la base de données. Les technologies sont particulièrement utiles pour les applications qui permettent aux utilisateurs de modifier les données et de conserver les modifications apportées à la base de données. Bien que les jeux de données soient une technologie éprouvée, l’approche recommandée pour les nouvelles applications .NET consiste à utiliser Entity Framework Core. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet et dispose d’une interface de programmation plus simple.

Vous enregistrez des données dans une transaction en utilisant l'espace de noms System.Transactions. Utilisez l’objet TransactionScope pour participer à une transaction qui est automatiquement gérée pour vous.

Les projets ne sont pas créés avec une référence à l’assembly System.Transactions . Vous devez donc ajouter manuellement une référence aux projets qui utilisent des transactions.

Le moyen le plus simple d’implémenter une transaction consiste à instancier un TransactionScope objet dans une using instruction. (Pour plus d’informations, consultez l’instruction Using et l’instruction Using.) Le code qui s’exécute dans l’instruction using participe à la transaction.

Pour valider la transaction, appelez la Complete méthode comme dernière instruction dans le bloc using.

Pour restaurer la transaction, lèvez une exception avant d’appeler la Complete méthode.

Pour ajouter une référence au System.Transactions.dll

  1. Dans le menu Projet, sélectionnez Ajouter une référence.

  2. Sous l’onglet .NET (onglet SQL Server pour les projets SQL Server), sélectionnez System.Transactions, puis OK.

    Une référence à System.Transactions.dll est ajoutée au projet.

Pour enregistrer des données dans une transaction

  • Ajoutez du code pour enregistrer des données dans l’instruction using qui contient la transaction. Le code suivant montre comment créer et instancier un TransactionScope objet dans une instruction 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();
    }