「Visual Basic」 DataAdapterでDBアクセス

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

このページではVisual Basicで「DataAdapter」を使用してDBアクセスする方法を解説しています。

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

Visual BasicでのDBアクセスは、主に「DataReader」と「DataAdapter」が使われます。

「DataAdapter」はデータベースからまとめて取り込むときに使います。

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

コーディングサンプル

Dimステートメント使用例

Imports System
Imports System.Data
Imports MySql.Data.MySqlClient
Imports Mysqlx.XDevAPI.Relational
Imports Org.BouncyCastle.Crypto.Modes.Gcm

Module Program
    Sub Main(args As String())

        Dim sql As String

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

        Dim cn As New MySql.Data.MySqlClient.MySqlConnection(sql)

        cn.Open()
        
        '--- データの読み込み ---
        sql = "select * from 売上tbl"

        Dim da As New MySqlDataAdapter(sql, cn)
        Dim ds As New DataSet

        da.Fill(ds, "tbl")

        '--- データの取り出し ---
        With ds.Tables("tbl")

            For I = 0 To .Rows.Count - 1
                Console.WriteLine(.Rows.Item(I).Item("品目CD") _
                                          & " " & .Rows.Item(I).Item("品目名"))
            Next I

        End With

        '--- クローズ ---
        da.Dispose()
        cn.Close()

    End Sub
End Module

Usingステートメント使用例

Imports System
Imports System.Data
Imports MySql.Data.MySqlClient
Imports Mysqlx.XDevAPI.Relational
Imports Org.BouncyCastle.Crypto.Modes.Gcm

Module Program
    Sub Main(args As String())

        Dim sql As String

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

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

            cn.Open()

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

            Using da As New MySqlDataAdapter(sql, cn)

                Dim ds As New DataSet

                da.Fill(ds, "tbl")

                '--- データの取り出し ---
                With ds.Tables("tbl")

                    For I = 0 To .Rows.Count - 1
                        Console.WriteLine(.Rows.Item(I).Item("品目CD") _
                                          & " " & .Rows.Item(I).Item("品目名"))
                    Next I

                End With

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

    End Sub
End Module
スポンサーリンク

解説

ライブラリインポート

DBアクセスに必要なライブラリをインポートします。サンプルで使用しているデータベースはMariaDBなので「MySql.Data.MySqlClient」をインポートしています。

Imports MySql.Data.MySqlClient

データベース接続

DB接続の文字列の定義、MySqlConnectionをインスタンス化、Openメソッドでデータベースに接続します。

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

        Dim cn As New MySql.Data.MySqlClient.MySqlConnection(sql)

        cn.Open()

データの読み込み

MySqlDataAdapterをインスタンス化、FILLメソッドにてDataSetオブジェクト(ds)にデータを一括で取り込みます。

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

        Dim da As New MySqlDataAdapter(sql, cn)
        Dim ds As New DataSet

        da.Fill(ds, "tbl")

データの取り出し

FOR文でループさせながら1件ずつデータを取り出しすことができます。

                '--- データの取り出し ---
                With ds.Tables("tbl")

                    For I = 0 To .Rows.Count - 1
                        Console.WriteLine(.Rows.Item(I).Item("品目CD") _
                                          & " " & .Rows.Item(I).Item("品目名"))
                    Next I

                End With
タイトルとURLをコピーしました