SQLServerのトランザクションの使用 - VB
VB.netにおける、トランザクションのやり方をメモしておく
VB.netでのSQLServerへの接続方法はここに書いてある
Dim con As System.Data.SqlClient.SqlConnection = Nothing Dim tran As System.Data.SqlClient.SqlTransaction = Nothing Try Dim serverName As String = "localhost" ' 例) 192.168.0.173 Dim dbName As String = "testdb" Dim userId As String = "sa" Dim password As String = "sqlserver" con = New System.Data.SqlClient.SqlConnection() con.ConnectionString = "Data Source = " & serverName & ";Initial Catalog = " & dbName & ";User ID = " & userId & ";Password = " & password con.Open() 'トランザクションの開始 tran = con.BeginTransaction ' SQL実行するためのオブジェクト? Dim sqlCmd As SqlClient.SqlCommand sqlCmd = con.CreateCommand() ' トランザクションをすることを明示する sqlCmd.Transaction = tran sqlCmd.CommandText = "CREATE TABLE TEST_TABLE1 (ID CHAR(3) PRIMARY KEY)" sqlCmd.ExecuteNonQuery() ' VARCHARがVRCHARになっているため、エラーになる sqlCmd.CommandText = "CREATE TABLE TEST_TABLE2 (NAME VRCHAR(256) PRIMARY KEY)" sqlCmd.ExecuteNonQuery() ' コミット tran.Commit() Console.WriteLine("コミット") Catch ex As Exception Console.WriteLine("Error! {0}", ex.Message) ' ロールバック tran.Rollback() Console.WriteLine("ロールバック") Finally ' コネクションが閉じられていないとき閉じる If Not con.State = ConnectionState.Closed Then con.Close() End If ' リソースの開放 tran.Dispose() con.Dispose() End Try
System.Data.SqlClient.SqlTransaction
を使うことででトランザクションの処理を行えるようになるSqlConnection.BeginTransaction
でトランザクションの開始、トランザクションのオブジェクトを返すSqlCommand.Transaction
プロパティにトランザクションオブジェクトを設定するSqlTransaction.Commit()
でコミットSqlTransaction.RollBack()
でロールバック
参考文献
ちょっとだけプログラマーの備忘録: 【VB.NET】ADO.NET トランザクション処理
【VB.NET】トランザクション処理の流れ: なんちゃってプログラマのぼやき
ローカル トランザクション.aspx)