「Visual Basic」データグリッドからデータベースを更新する

*本サイトはアフィリエイト広告を利用しています。

このページではVisual Basicでデータグリッドでデータベースを更新する方法を解説しています。

  • データベース MariaDB
  • Visual Studio 2022

簡単なサンプルコーディングなので同時更新は考慮していません、十分なテストを行ってから実装してください。

スポンサーリンク
スポンサーリンク

画面サンプル

今回のコーディングサンプルで表示される画面は以下です。

スポンサーリンク

フォームの作成

Visual Basicでコーディングする前にフォームを作成します。

データグリッドとボタンだけを配置してあります。

Formをロードした時にデータベースからデータを読み込み表示します。

「確認」ボタンでデータベースの更新を行います。

データグリッドの名前は「dg」とします。

ボタンの名前は「okButton」とします。

コーディングサンプル

データの表示

Form Load時のデータ表示のコーディングサンプルは以下です。

Imports MySql.Data.MySqlClient

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim str As String

        '--- データベース接続 ---
        str = "Server=localhost" _
                                & ";Port=3306" _
                                & ";Database=テストdb" _
                                & ";UserID=root" _
                                & ";Password=''"

        Using cn As New MySql.Data.MySqlClient.MySqlConnection(str)

            cn.Open()

            '--- データの読み込み ---
            Dim sql As String = "select * from 売上tbl"

            Using da As New MySqlDataAdapter(sql, cn)

                Dim dt As New DataTable

                da.Fill(dt)

                '--- データグリッドにバインドする ---
                dg.DataSource = dt

                '--- クローズ ---
            End Using
        End Using

    End Sub

データ更新(Update)

「更新」ボタンを押した時のデータ更新処理は以下のコーディングです。

Imports MySql.Data.MySqlClient

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    .
    .  (中略)データの表示
    .
    End Sub
'-------------------------------------------------------------------------------------
    Private Sub okButton_Click(sender As Object, e As EventArgs) Handles okButton.Click
        Dim str As String

        '--- データベース接続 ---
        str = "Server=localhost" _
                                & ";Port=3306" _
                                & ";Database=テストdb" _
                                & ";UserID=root" _
                                & ";Password=''"

        Using cn As New MySql.Data.MySqlClient.MySqlConnection(str)

            cn.Open()

            '--- データの読み込み ---
            Dim sql As String = "select * from 売上tbl"

            Using da As New MySqlDataAdapter(sql, cn)
                
                Dim dt As New DataTable
                Dim sqlcb = New MySql.Data.MySqlClient.MySqlCommandBuilder(da)
                
                '--- データの更新 ---
                dt = dg.DataSource
                da.Update(dt)

                MessageBox.Show("処理終了")

                '--- クローズ ---
            End Using
        End Using
    End Sub
End Class
タイトルとURLをコピーしました