今回は、ACCESSデータベースのデータ登録 更新 削除の方法を紹介していきます。
ACCESSデータベースの接続方法の詳細を知りたい方は、先にこちらを参考にしてみてください。
ACCESSデータベースの接続方法とデータの取得方法を記載しています。
それでは、VB.NETからACCESSのデータの更新方法を見ていきましょう。
ACCESSデータベースのデータ更新
ACCESSのデータの登録、更新、削除をしていきます。
対象のデータは、下記の画像のような3件のデータになっています。
VB.NETからACCESSのデータを更新してみましょう。
1.名前が「伊藤」のデータを更新
2.新しいデータを1件追加
3.名前が「田中」のデータを削除
Imports System.Data.OleDb
Public Class frmAccessDbUpdate
Private Sub frmAccessDbUpdate_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'SQL作成
Dim sql = New System.Text.StringBuilder()
sql.AppendLine("UPDATE 名前テーブル")
sql.AppendLine("SET 動物 = 'ANIMAL'")
sql.AppendLine("WHERE 名前 = '伊藤'")
Dim sql2 = New System.Text.StringBuilder()
sql2.AppendLine("INSERT INTO 名前テーブル(")
sql2.AppendLine("ID")
sql2.AppendLine(",名前")
sql2.AppendLine(",動物")
sql2.AppendLine(",身長")
sql2.AppendLine(")VALUES(")
sql2.AppendLine("4")
sql2.AppendLine(",'山田'")
sql2.AppendLine(",'いぬ'")
sql2.AppendLine(",170")
sql2.AppendLine(")")
Dim sql3 = New System.Text.StringBuilder()
sql3.AppendLine("DELETE FROM 名前テーブル")
sql3.AppendLine("WHERE 名前 = '田中'")
'Access接続準備
Dim command As New OleDbCommand
Dim cnAccess As OleDbConnection = New OleDbConnection
cnAccess.ConnectionString = My.Settings.AccessCon
'Access接続開始
cnAccess.Open()
Dim tran As OleDbTransaction
tran = cnAccess.BeginTransaction
Try
command.Connection = cnAccess
command.Transaction = tran
command.CommandText = sql.ToString
command.ExecuteNonQuery()
command.CommandText = sql2.ToString
command.ExecuteNonQuery()
command.CommandText = sql3.ToString
command.ExecuteNonQuery()
tran.Commit()
Catch ex As Exception
tran.Rollback()
Throw
Finally
command.Dispose()
cnAccess.Close()
End Try
End Class
解説
7~10行目:名前が「伊藤」のデータを更新 するためのSQLを作成
12~23行目:新しいデータを1件追加 するためのSQLを作成
25~27行目:名前が「田中」のデータを削除 するためのSQLを作成
30~31行目:SQLを実行するのに必要な変数を設定
32行目:作成した接続文字列を設定
35行目:ACCESSに接続
37~38行目:トランザクションを開始(トランザクションがわからない方はこちらを参考にしてみてください。)
42~43行目:コネクションの設定とトランザクションの設定
45~52行目:各SQLを実行(command.ExecuteNonQuery())
結果
データの登録、更新、削除がされていることが確認できましたね!
まとめ
今回はACCESSデータベースの更新方法を紹介しました。
実行するときは、トランザクションを開始してから実行するようにしましょう。
実行するには「OleDbCommand.ExecuteNonQuery()」を利用しましょう。