Back to Top

プログラムの覚書

VB.NET ADO.NETを用するトランザクション

SQL Serverで、ADO.NETを使用するローカルトランザクション(単一のデータソースに対するトランザクション)を説明します。

トランザクション処理

Dim builder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder()
builder.DataSource = ".\SQLEXPRESS"
builder.AttachDBFilename = "D:\DB\TestDB.mdf"
builder.IntegratedSecurity = True
builder.UserInstance = True
builder.MultipleActiveResultSets = True
Dim ConnectString As String = builder.ToString()

Using sqlConnect As New SqlConnection(ConnectString)
    sqlConnect.Open()

    'トランザクション処理を開始する
    Dim tran As SqlClient.SqlTransaction = sqlConnect.BeginTransaction()

    'コマンドをトランザクション処理に組み入れる
    Dim command As SqlCommand = sqlConnect.CreateCommand()
    command.Transaction = tran

    Try
        command.CommandText = "UPDATE Table_1 SET Item2 = 'A0001'"
        command.ExecuteNonQuery()

        'コミット処理
        tran.Commit()
    Catch ex As Exception
        'ロールバック処理
        tran.Rollback()
    End Try
End Using

 

VB.NET ADO.NETでSQLコマンドを実行する

ADO.NETで、接続したDBに対してステートメント(SQL コマンド)を実行する方法を説明します。

ExecuteNonQueryの実行

Dim builder As SqlConnectionStringBuilder = New SqlConnectionStringBuilder()
builder.DataSource = ".\SQLEXPRESS"
builder.AttachDBFilename = "D:\DB\TestDB.mdf"
builder.IntegratedSecurity = True
builder.UserInstance = True
builder.MultipleActiveResultSets = True
Dim ConnectString As String = builder.ToString()

Using sqlConnect As New SqlConnection(ConnectString)
    sqlConnect.Open()

    Dim command As SqlCommand = sqlConnect.CreateCommand()
    Try
        command.CommandText = "UPDATE Table_1 SET Item2 = 'A0001'"
        command.ExecuteNonQuery()
    Catch ex As Exception
    End Try
End Using