SQL クライアント .NET プロバイダと OLE DB .NET プロバイダでは、共通言語ランタイムにおける手動トランザクションがサポートされます。ADO.NET では、いずれかの .NET プロバイダを使用してトランザクションを制御できます。
どちらのプロバイダにも、データベース接続を作成し、トランザクションを開始し、トランザクションをコミットまたはロールバックするマネージ オブジェクトのセットが含まれます。2 つのプロバイダの最大の違いは、接続の機構です。SQL クライアント .NET プロバイダには、SQL サーバーを直接呼び出すオブジェクトのセットが用意されています。これと対照的に、OLE DB .NET プロバイダでは、ネイティブな OLE DB を使用してデータ アクセスを実現します。
ローカル トランザクションを開始するには、ADO.NET 接続オブジェクトの Connection.BeginTransaction を使用します。Command オブジェクトの Transaction プロパティを使用して、そのトランザクションにコマンドを参加させます。トランザクションの内容が成功したか失敗したかに基づいて、Transaction オブジェクトを使用して、データ ソースに対する変更をコミットまたはロールバックします。
既定では、参加は自動に設定されます。無効にすることもできます。無効にした場合は、手動で参加します。既存の分散トランザクションへは、Connection.EnlistDistributedTransaction を使用して参加します。分散トランザクション全体がコミットまたはロールバックされる場合は、データ ソースに対してコードで行った変更もコミットまたはロールバックされます。
ADO.NET を使用したトランザクションの例については、「トランザクションの実行」を参照してください。