[VB.NET]Oracleでトランザクションを開始する方法

書式
Public Function BeginTransaction () As OracleTransaction
データベースでトランザクションを開始します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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

 

VB.net

Posted by arkgame