今日、やったこと C#でトランザクション実装 コミット、ロールバック ロック 今日のホワイトボード C#+ODP.NETでトランザクションの実装をしました。 トランザクションを実装するには 〇OracleTransactionオブジェクト取得 トランザクションは最後にコミット、ロールバックを実行する必要があります。 C#+ODP.NETではコミット、ロールバックはOracleTransactionオブジェクトが持つCommit()、Rollback()メソッドで実行します。 このOracleTransactionオブジェクトは接続済み(Open()実行済み)のOracleConnectionオブジェクトのBeginTransaction()で取得できます。 〇複数種類のSQLを同一トランザクションのメンバにする また、1トランザクションで複数種類のSQLを実行する場合、複数のOracleCommandオブジェクトを使います。この複数のOracleCommandオブジェクトのTransactionプロパティに同じOracleTransactionオブジェクトをセットすることで、同一トランザクションのメンバになります。 図 OracleTransactionオブジェクト サンプルプログラム1 コミット、ロールバック ソースコードをあげておきます。 Item.cs 商品情報受け渡し用クラス。いつもプロパティとコンストラクタのクラス。 ItemDAO.cs ポイントはUpdate()のOracleTransactionを使ったトランザクションに関する実装。 using(){ }を使えば、自動的にClose()を実行してくれる。 図 using(){ }で自動的にClose()実行 Index.cshtml.cs 価格を入力するテキストボックスが増減する可能性があるため、OnPost()の引数で入...