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

Remarque

Les jeux de données et les classes associées sont des technologies .NET Framework héritées qui datent du début des années 2000. Elles 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. Elles sont particulièrement utiles aux applications qui permettent aux utilisateurs de modifier des données, et de rendre ces changements persistants dans la base de données. Même si les jeux de données sont une technologie très efficace, nous vous recommandons d’utiliser Entity Framework Core pour les nouvelles applications .NET. Entity Framework offre un moyen plus naturel d’utiliser des données tabulaires en tant que modèles objet. De plus, il présente une interface de programmation plus simple.

Vous enregistrez des données dans une transaction à l’aide de 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 objet TransactionScope dans une instruction using. (Pour plus d’informations, consultez Utiliser une instruction et Utiliser une instruction.) Le code qui s’exécute dans l’instruction using participe à la transaction.

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

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

Ajouter une référence à 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.

Enregistrer des données dans une transaction

  • Ajoutez du code pour enregistrer des données dans Utiliser une instruction qui contient la transaction. Le code suivant montre comment créer et instancier un objet TransactionScope dans Utiliser une instruction :

    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();
    }