ヘッダー

VB.NET 2002, VB.NET 2003

トランザクションを使う

この記事は SQL Server 2000 で動作確認しています。他のデータベースでも宣言の部分を変更すれば同じコードが実行できます。

以下のサンプルは単純にSQL文を発行して テーブルに新しいレコードを追加いたあとで、コミット(確定)するか、ロールバック(取り消し)するかユーザーの選択に従う。

Dim Cn As SqlClient.SqlConnection
Dim sqlInsert As New SqlClient.SqlCommand
Dim Tran As SqlClient.SqlTransaction

'<ここにCnのデータベースへの接続処理を追加してください。>

Cn.Open()
Tran = Cn.BeginTransaction

sqlInsert.Connection = Cn
sqlInsert.Transaction = Tran
sqlInsert.CommandText = "INSERT INTO TestTable VALUES(10, 'How are you?', 'Test')"
sqlInsert.ExecuteNonQuery()

If vbYes = MsgBox("確定(Commit)しますか?", MsgBoxStyle.YesNo) Then
    Tran.Commit()
Else
   
Tran.Rollback()
End
If

sqlInsert.Dispose()

Cn.Close()

メモ:サンプル中に登場するTestTableの構造は次の通り。

  名前 サイズ NULL
KEY ID int   不可
  Name nvarchar 50 許可
  Comment nvarchar 200 許可

メモ:データベースへの接続に関しては以下のリンクを参照。

MDBに接続する

SQL Serverに接続する