英語で読む

次の方法で共有


IDbTransaction インターフェイス

定義

データ ソースで実行されるトランザクションを表し、リレーショナル データベースにアクセスする .NET データ プロバイダーにより実装されます。

public interface IDbTransaction : IDisposable
派生
実装

次の例では、 SqlConnectionSqlTransaction派生クラスと のインスタンスを作成します。 また、および Rollback メソッドのBeginTransactionCommit使用方法も示します。

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

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

注釈

IDbTransactionインターフェイスを使用すると、継承クラスで Transaction クラスを実装できます。これは、データ ソースで実行されるトランザクションを表します。 トランザクション クラスの詳細については、「 トランザクションとコンカレンシー」を参照してください。

アプリケーションは インターフェイスの IDbTransaction インスタンスを直接作成するのではなく、 を継承するクラスのインスタンスを作成します IDbTransaction

IDbTransaction を継承するクラスは、継承されたメンバーを実装し、通常は、プロバイダー固有の機能を追加するための追加メンバーを定義する必要があります。 たとえば、IDbTransaction インターフェイスは、Commit メソッドを定義します。 さらに、 クラスはこのプロパティを OleDbTransaction 継承し、 メソッドも定義します Begin

注意 (実装者)

.NET Frameworkデータ プロバイダー間の一貫性を高めるために、Transaction という形式Prvで継承クラスにという名前を付けます。ここでPrv、 は、特定の.NET Framework データ プロバイダー名前空間内のすべてのクラスに渡される統一されたプレフィックスです。 たとえば、 Sql は 名前空間の System.Data.SqlClient クラスのSqlTransactionプレフィックスです。

プロパティ

Connection

トランザクションに関連付けられる Connection オブジェクトを指定します。

IsolationLevel

このトランザクションの IsolationLevel を指定します。

メソッド

Commit()

データベース トランザクションをコミットします。

Dispose()

アンマネージ リソースの解放またはリセットに関連付けられているアプリケーション定義のタスクを実行します。

(継承元 IDisposable)
Rollback()

トランザクションを保留状態からロールバックします。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1