[VB.NET]Oracleでトランザクションを開始する方法
書式
Public Function BeginTransaction () As OracleTransaction
データベースでトランザクションを開始します。
使用例
Public Sub RunOracleTransaction(ByVal connectionString As String)
Using connection As New OracleConnection(connectionString)
connection.Open()
'OracleCommandオブジェクトの宣言
Dim command As OracleCommand = connection.CreateCommand()
'トランザクション型変数
Dim transaction As OracleTransaction
' ローカルトランザクションを開始
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
' 保留中のローカルトランザクションにトランザクションオブジェクトを割り当て
command.Transaction = transaction
Try
command.CommandText = _
"INSERT INTO DeptTbl (DeptNo, Dname, Loc) values (41, 'TECHNOLOGY', 'city 111')"
command.ExecuteNonQuery()
command.CommandText = _
"INSERT INTO DeptTbl (DeptNo, Dname, Loc) values (53, 'ENGINEERING', 'city 222')"
command.ExecuteNonQuery()
'コミット
transaction.Commit()
'結果メッセージを出力
Console.WriteLine("二つのレコードがデータベースに書き込まる.")
Catch e As Exception
'ロールバック
transaction.Rollback()
'例外メッセージを出力
Console.WriteLine(e.ToString())
Console.WriteLine("データベースにレコードを書き込まれませんでした.")
End Try
End Using
End Sub
Public Sub RunOracleTransaction(ByVal connectionString As String)
Using connection As New OracleConnection(connectionString)
connection.Open()
'OracleCommandオブジェクトの宣言
Dim command As OracleCommand = connection.CreateCommand()
'トランザクション型変数
Dim transaction As OracleTransaction
' ローカルトランザクションを開始
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
' 保留中のローカルトランザクションにトランザクションオブジェクトを割り当て
command.Transaction = transaction
Try
command.CommandText = _
"INSERT INTO DeptTbl (DeptNo, Dname, Loc) values (41, 'TECHNOLOGY', 'city 111')"
command.ExecuteNonQuery()
command.CommandText = _
"INSERT INTO DeptTbl (DeptNo, Dname, Loc) values (53, 'ENGINEERING', 'city 222')"
command.ExecuteNonQuery()
'コミット
transaction.Commit()
'結果メッセージを出力
Console.WriteLine("二つのレコードがデータベースに書き込まる.")
Catch e As Exception
'ロールバック
transaction.Rollback()
'例外メッセージを出力
Console.WriteLine(e.ToString())
Console.WriteLine("データベースにレコードを書き込まれませんでした.")
End Try
End Using
End Sub
Public Sub RunOracleTransaction(ByVal connectionString As String) Using connection As New OracleConnection(connectionString) connection.Open() 'OracleCommandオブジェクトの宣言 Dim command As OracleCommand = connection.CreateCommand() 'トランザクション型変数 Dim transaction As OracleTransaction ' ローカルトランザクションを開始 transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted) ' 保留中のローカルトランザクションにトランザクションオブジェクトを割り当て command.Transaction = transaction Try command.CommandText = _ "INSERT INTO DeptTbl (DeptNo, Dname, Loc) values (41, 'TECHNOLOGY', 'city 111')" command.ExecuteNonQuery() command.CommandText = _ "INSERT INTO DeptTbl (DeptNo, Dname, Loc) values (53, 'ENGINEERING', 'city 222')" command.ExecuteNonQuery() 'コミット transaction.Commit() '結果メッセージを出力 Console.WriteLine("二つのレコードがデータベースに書き込まる.") Catch e As Exception 'ロールバック transaction.Rollback() '例外メッセージを出力 Console.WriteLine(e.ToString()) Console.WriteLine("データベースにレコードを書き込まれませんでした.") End Try End Using End Sub