3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(VB.Net)ADO.NetでOLEDBのトランザクション

ADO.Netトランザクションするコードです。

'接続型でDBにつなぐ

Dim cn As New OleDb.OleDbConnection

cn.ConnectionString = テーブルアダプタ.Connection.ConnectionString

'コネクションを開く

cn.Open()

 

'コマンドオブジェクト生成

Dim cmd As New OleDb.OleDbCommand()

cmd.Connection = cn

 

'------トランザクション開始-------

Dim trans As OleDb.OleDbTransaction = cn.BeginTransaction()

'コマンドオブジェクトにトランザクション関連付け

cmd.Transaction = trans

 

Try

Dim sql As String = "DELETE * FROM ZipCode"

cmd.CommandText = sql

cmd.ExecuteNonQuery()

'-------トランザクションコミット-------

trans.Commit()

Catch ex As Exception

'-------失敗時はロールバック-------

trans.Rollback()

Finally

'DB後処理

cn.Close()

End Try

MSDNによると、ADO.Netによるトランザクションの基本的流れは下記のようになるみたいです。

1.Connection オブジェクトの BeginTransaction メソッドを呼び出してTransactionオブジェクトを取得します。

2.Command の Transaction プロパティに Transaction オブジェクトを割り当てます。

3.Transaction オブジェクトの Commit メソッドを呼び出して、トランザクションを実行するか、または Rollback メソッドを呼び出してトランザクションをキャンセルします。

かなり簡単にできますね。

参考:ADO.NET によるトランザクションの実行