VB ADO.NET はじめてのトランザクション

トランザクション処理とは複数の処理をひとつのまとまりとして実行することをいいます。
例えば、複数のテーブルを更新するケースでよくあげられる例では、残高を記録しているテーブルから、ある額を引き出し、別のテーブルにそのある額を加算するケースがあげられます。二つ目のテーブル更新時に失敗した場合最初の残高テーブルを引き出した処理をキャンセル必要があります。このような処理を保証するための仕組みがトランザクション処理です。なんだかややこしそうですが、とっても簡単に実装できます。

以下VBでの実装例です。
conn.BeginTransaction(IsolationLevel.ReadCommitted)は、未コミットのデータは読み取らないということを設定しています。ここはケースバイケースで適切なものを選択しますが、VBでの規定値はReadCommitedとなっています。

  Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click

        '接続文字列
        Dim connection_str As String = "*******************"

        Dim tra As SqlClient.SqlTransaction
        Dim conn As New SqlClient.SqlConnection(connection_str)

        Try
            conn.Open()
            tra = conn.BeginTransaction(IsolationLevel.ReadCommitted)


            '1つ目のテーブルの更新処理



            '2つ目のテーブルの更新処理



            'コミット 更新の確定
            tra.Commit()



        Catch s As Exception
            'ロールバック 更新のキャンセル
            tra.Rollback()

        Finally
            conn.Close()
        End Try


  End Sub

カテゴリー: VB パーマリンク