IDbTransaction インターフェイス
アセンブリ: System.Data (system.data.dll 内)

Public Interface IDbTransaction Inherits IDisposable
public interface IDbTransaction : IDisposable
public interface class IDbTransaction : IDisposable
public interface IDbTransaction extends IDisposable
public interface IDbTransaction extends IDisposable

IDbTransaction インターフェイスによって、継承クラスはデータ ソースで実行するトランザクションを示す Transaction クラスを実装できます。Transaction クラスの詳細については、「トランザクションの実行」を参照してください。.NET Framework データ プロバイダの実装の詳細については、「Implementing a .NET Framework Data Provider」を参照してください。
アプリケーションでは IDbTransaction インターフェイスのインスタンスは直接作成されず、IDbTransaction を継承するクラスのインスタンスが作成されます。
IDbTransaction を継承するクラスは、継承されたメンバを実装する必要があり、通常、プロバイダ固有の機能を追加する追加メンバを定義する必要があります。たとえば、IDbTransaction インターフェイスが Commit メソッドを定義します。次に、OleDbTransaction クラスがこのプロパティを継承し、Begin メソッドを定義します。
実装時の注意 .NET Framework データ プロバイダ間に一貫性を持たせるために、継承クラスには Prv Transaction という形式の名前を付けてください。Prv は、各 .NET Framework データ プロバイダの名前空間内のすべてのクラスに付けられるプリフィックスです。たとえば、Sql は System.Data.SqlClient 名前空間内の SqlTransaction クラスのプリフィックスです。
派生クラス SqlConnection および SqlTransaction のインスタンスを作成する例を次に示します。BeginTransaction、Commit、Rollback の各メソッドの使い方も示します。
Private Sub ExecuteSqlTransaction(ByVal connectionString As String) Using connection As New SqlConnection(connectionString) connection.Open() Dim command As SqlCommand = connection.CreateCommand() Dim transaction As SqlTransaction ' 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 ex As Exception Console.WriteLine("Commit Exception Type: {0}", ex.GetType()) Console.WriteLine(" Message: {0}", ex.Message) ' Attempt to roll back the transaction. Try transaction.Rollback() Catch ex2 As Exception ' 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) End Try End Try End Using End Sub
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 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IDbTransaction プロパティ
IDbTransaction メソッド
IDbTransaction メンバ
- IDbTransactionのページへのリンク