このページではVisual Basicで「DataReader」を使用してDBアクセスする方法を解説しています。
- データベース MariaDB
- Visual Studio 2022
Visual BasicでのDBアクセスは、主に「DataReader」と「DataAdapter」が使われます。
「DataReader」はデータベースから読み込んだデータを1行ずつ処理するときに使います。
コーディングサンプル
Dimステートメント使用例
Imports System
Imports System.Data
Imports System.Security.Cryptography
Imports MySql.Data.MySqlClient
Module Program
Sub Main(args As String())
'--- データベース接続 ---
Dim mysqldb As String = "Server=localhost" _
& ";Port=3306" _
& ";Database=テストdb" _
& ";UserID=root" _
& ";Password=''"
Dim cn As New MySqlConnection()
cn.ConnectionString = mysqldb
cn.Open()
'--- データの読み込み ---
Dim sql = "select * from 売上tbl"
Dim cmd = New MySqlCommand(sql, cn)
Dim dr As MySqlDataReader
dr = cmd.ExecuteReader()
'--- データの取り出し ---
Do While (dr.Read())
Console.WriteLine(dr.Item("品目CD") & " " & dr.Item("品目名"))
Loop
'--- クローズ ---
dr.Close()
cn.Close()
End Sub
End Module
Usingステートメント使用例
Imports System
Imports System.Data
Imports System.Security.Cryptography
Imports MySql.Data.MySqlClient
Module Program
Sub Main(args As String())
'--- データベース接続 ---
Dim mysqldb As String = "Server=localhost" _
& ";Port=3306" _
& ";Database=テストdb" _
& ";UserID=root" _
& ";Password=''"
Using cn As New MySqlConnection()
cn.ConnectionString = mysqldb
cn.Open()
'--- データの読み込み ---
Dim sql = "select * from 売上tbl"
Dim cmd = New MySqlCommand(sql, cn)
Using dr As MySqlDataReader = cmd.ExecuteReader()
'--- データの取り出し ---
Do While (dr.Read())
Console.WriteLine(dr.Item("品目CD") & " " & dr.Item("品目名"))
Loop
'--- クローズ ---
End Using
End Using
End Sub
End Module
解説
ライブラリインポート
DBアクセスに必要なライブラリをインポートします。サンプルで使用しているデータベースはMariaDBなので「MySql.Data.MySqlClient」をインポートしています。
Imports MySql.Data.MySqlClient
※MariaDBの場合は事前にVisual StudioでMysql.Dataのインストールが必要です。
データベース接続
DB接続の文字列の定義、MySqlConnectionをインスタンス化、Openメソッドでデータベースに接続します。
'--- データベース接続 ---
Dim mysqldb As String = "Server=localhost" _
& ";Port=3306" _
& ";Database=テストdb" _
& ";UserID=root" _
& ";Password=''"
Dim cn As New MySqlConnection()
cn.ConnectionString = mysqldb
cn.Open()
データの読み込み
ExecuteReaderメソッドでSQLが実行され、結果がMySqlDataReaderオブジェクト(dr)に返されます。
'--- データの読み込み ---
Dim sql = "select * from 売上tbl"
Dim cmd = New MySqlCommand(sql, cn)
Dim dr As MySqlDataReader
dr = cmd.ExecuteReader()
データの取り出し
Readメソッドにて1件ずつデータを取り出します。
dr.Read()