次の方法で共有


.NET Framework アプリケーションでトランザクションを使用してデータを保存する

DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。

System.Transactions名前空間を使用して、トランザクションにデータを保存します。 TransactionScope オブジェクトを使用して、自動的に管理されるトランザクションに参加します。

プロジェクトは System.Transactions アセンブリへの参照を使用して作成されないため、トランザクションを使用するプロジェクトへの参照を手動で追加する必要があります。

トランザクションを実装する最も簡単な方法は、using ステートメントでTransactionScope オブジェクトをインスタンス化することです。 (詳細については、「ステートメントの使用」および 「ステートメント使用」を参照してください)。 using ステートメント内で実行されるコードは、トランザクションに参加します。

トランザクションをコミットするには、using ブロックの最後のステートメントとして Complete メソッドを呼び出します。

トランザクションをロールバックするには、 Complete メソッドを呼び出す前に例外をスローします。

System.Transactions.dll への参照を追加するには

  1. [プロジェクト] メニューの [参照の追加] を選択します。

  2. [ .NET ] タブ (SQL Server プロジェクトの [SQL Server ] タブ) で、[ System.Transactions] を選択し、[ OK] を選択します

    System.Transactions.dll への参照がプロジェクトに追加されます。

トランザクションにデータを保存するには

  • トランザクションを含む using ステートメント内にデータを保存するコードを追加します。 次のコードは、using ステートメントで TransactionScope オブジェクトを作成してインスタンス化する方法を示しています。

    using (System.Transactions.TransactionScope updateTransaction = 
        new System.Transactions.TransactionScope())
    {
        // Add code to save your data here.
        // Throw an exception to roll back the transaction.
    
        // Call the Complete method to commit the transaction
        updateTransaction.Complete();
    }