Exporter (0) Imprimer
Développer tout

IDbTransaction, interface

Mise à jour : novembre 2007

Représente une transaction à effectuer au niveau d'une source de données, et est implémenté par les fournisseurs de données .NET Framework qui accèdent à des bases de données relationnelles.

Espace de noms :  System.Data
Assembly :  System.Data (dans System.Data.dll)

public interface IDbTransaction : IDisposable
public interface IDbTransaction extends IDisposable
public interface IDbTransaction extends IDisposable

L'interface IDbTransaction permet à une classe qui hérite d'implémenter une classe Transaction représentant la transaction à effectuer au niveau d'une source de données. Pour plus d'informations sur les classes Transaction, consultez Transactions et concurrence (ADO.NET).

Une application ne crée pas directement d'instance de l'interface IDbTransaction, mais crée une instance d'une classe qui hérite de IDbTransaction.

Les classes qui héritent de IDbTransaction doivent implémenter les membres hérités et définissent généralement des membres supplémentaires pour ajouter des fonctionnalités propres au fournisseur. Par exemple, l'interface IDbTransaction définit la méthode Commit. À son tour, la classe OleDbTransaction hérite de cette propriété et définit également la méthode Begin.

Remarques à l'attention des implémenteurs :

Pour promouvoir la cohérence entre les fournisseurs de données .NET Framework, nommez la classe qui hérite sous la forme Prv Transaction, où Prv est le préfixe uniforme affecté à toutes les classes d'un espace de noms de fournisseurs de données .NET Framework spécifique. Par exemple, Sql est le préfixe de la classe SqlTransaction dans l'espace de noms System.Data.SqlClient.

L'exemple suivant crée des instances des classes dérivées (SqlConnection et SqlTransaction). Il montre également comment utiliser les méthodes BeginTransaction, Commit et Rollback.

private static void ExecuteSqlTransaction(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();

        SqlCommand command = connection.CreateCommand();
        SqlTransaction transaction;

        // Start a local transaction.
        transaction = connection.BeginTransaction("SampleTransaction");

        // Must assign both transaction object and connection
        // to Command object for a pending local transaction
        command.Connection = connection;
        command.Transaction = transaction;

        try
        {
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
            command.ExecuteNonQuery();
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
            command.ExecuteNonQuery();

            // Attempt to commit the transaction.
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
            Console.WriteLine("  Message: {0}", ex.Message);

            // Attempt to roll back the transaction.
            try
            {
                transaction.Rollback();
            }
            catch (Exception ex2)
            {
                // This catch block will handle any errors that may have occurred
                // on the server that would cause the rollback to fail, such as
                // a closed connection.
                Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
                Console.WriteLine("  Message: {0}", ex2.Message);
            }
        }
    }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0

XNA Framework

Pris en charge dans : 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft