トランザクションの実行

トランザクションは、一連の操作を結合した、論理的な作業単位です。トランザクションを使用すると、エラーが発生した場合でも、トランザクションの各操作の一貫性と整合性を制御および維持できます。

たとえば、ある口座から別の口座に預金残高を振り替える銀行業務アプリケーションでは、あるデータベース テーブルの一方の口座で金額を貸方記入 (残高増加) し、同時に別のデータベース テーブルのもう一方の口座で同じ金額を借方記入 (残高減少) します。コンピュータは電源故障やネットワーク障害などによって機能しなくなる場合があるため、一方のテーブルの行が更新されても、もう一方のテーブルが更新されていない状況が発生することがあります。データベースでトランザクションがサポートされている場合は、データベースの操作を 1 つのトランザクションとしてグループ化することで、これらのイベントによって発生するデータベースの非一貫性を防ぐことができます。トランザクションのあるポイントで障害が発生した場合は、トランザクションが開始される前の状態にすべての更新をロールバックできます。障害が発生しなかった場合は、トランザクションが完了したものとしてコミットし、更新を終了できます。

ADO.NET では、Connection オブジェクトと Transaction オブジェクトを使用してトランザクションを制御できます。ローカル トランザクションは、Connection.BeginTransaction で開始できます。トランザクションを開始したら、Command オブジェクトの Transaction プロパティを使用して、そのトランザクション内にコマンドを追加できます。次に、Transaction オブジェクトを使用して、トランザクションの内容の成功または失敗に基づいて、データ ソースに対して行った変更をコミットまたはロールバックすることができます。

Connection.EnlistDistributedTransaction を使用して、既存の分散トランザクションに参加することもできます。既存の分散トランザクションに参加すると、分散トランザクション全体がコミットまたはロールバックされた場合、データ ソースに対してコードで行った変更もコミットまたはロールバックされます。

このセクションの内容

  • ADO.NET によるトランザクションの実行
    Connection オブジェクトおよび Transaction オブジェクトを使用して、データ ソースに対するトランザクションを実行する方法について説明します。
  • 分散トランザクションへの参加
    Connection オブジェクトを使用して、データ ソースに対して実行するアクションを分散トランザクションに追加する方法について説明します。

関連項目

  • .NET Framework データ プロバイダによるデータのアクセス
    .NET Framework データ プロバイダのコンポーネントについて説明し、.NET Framework データ プロバイダを使用してデータ ソースのデータを照会および更新する方法について説明します。また、.NET Framework Data Provider for SQL Server と .NET Framework Data Provider for OLE DB の使用例を示します。