VB.NETでMySQLに接続


この記事の所要時間: 627

こんにちは!すでに夏バテしつつある、大内です。

今回はVisual Studio2012を使ってデータベースに接続、表示します。

Visual Studio2012 .NET Frameworkバージョン4.5
MySQLバージョン5.6.19
MySQLを利用するには参照の設定画面で、「MySql.Data.dll」の追加が必要です。

MySQLの設定はこのようになっています。

スクリーンショット_060414_011446_PM

先にtestデータベースにusersテーブルname、age、telカラムを作成しておきました。

1.接続文字列を作成する

接続文字列にはデータベースに接続するために必要な情報を与えます。・どのサーバを使うか・ポート番号・ユーザ名・パスワード・データベース名などです。MySQLの設定にそって設定します。

接続文字列を作成するためにMySqlConnectionStringBuilderクラスを使います。情報をセットしたら、接続文字列を返す操作をToStringメソッドで行います。さらに接続するための一連の流れをConStrという変数にセットしておきます。

私はこのあたりが理解しづらかったのでこのようにイメージしました。例えば、あなたはAさんに電話をかけようとしています。Aさんに電話をかけるには電話番号が必要です。もしかしたら、またAさんに電話をかける機会があるかもしれません。その都度、電話番号を調べてボタンを押してという動作を繰り返すのは面倒です。なので、電話帳に登録しておきましょう!

Imports MySql.Data.MySqlClient
Public Class Form1
  Private Sub Form1_Load(sender  As Object, e As EventArgs) Handles MyBase.Load
  ' 1.接続文字列を作成する
  Dim Builder = New MySqlConnectionStringBuilder()
  ' データベースに接続するために必要な情報をBuilderに与える
  Builder.Server = "localhost"
  Builder.Port = 3306
  Builder.UserID = "root"
  Builder.Password = "root"
  Builder.Database = "test"
  Dim ConStr = Builder.ToString()

2.データベースに接続する

MySqlConnectionクラスを使います。接続するために必要な接続文字列をConnectionStringプロパティに設定します。接続文字列は先ほど作りましたね。Openメソッドで繋ぎます。

  ' 2.データベースに接続するための準備をして、実際につなぐ
  Dim Con As New MySqlConnection
  Con.ConnectionString = ConStr
  Con.Open()

3.データベースからデータを取得する

今回はtestデータベースのusersテーブルのデータを表示させたいので、データを取得するSQL文を作ります。

  ' 3.発行するSQL文を作成する
  Dim SqlStr = "SELECT * FROM users"

MySqlDataAdapterクラスを使います。データベースからデータを読み込んで取得するためにSQL文とデータベース接続情報を渡します。

  ' 4.データ取得のためのアダプタの設定
  Dim Adapter = New MySqlDataAdapter(SqlStr, Con)

データアダプタで取得したデータの結果をFillメソッドを使って、DataSetにセットします。DataSetは箱のようなものです。

  ' 5.データを取得し、セットする
  Dim Ds As New DataSet
  Adapter.Fill(Ds)

4.DataGridViewに表示する

今回はデータベースの内容をDataGridViewに表示させたいので取得したデータをDataSourceプロパティに与えます。DataSetには先ほどSQL文を使って取得したusersテーブルがセットされているのでそれを設定します。なお、Tablesには引数が必要です。今回はテーブルを一つしか作成していないので0としています。

  ' 6.DataGridViewに取得したデータを表示させる
  DataGridView1.DataSource = Ds.Tables(0)

5.データベースの切断

 ' 7.データベースの切断
  Con.Close()
  End Sub
End Class

実行結果はこのようになりました。お疲れ様でした。
※実際に使用するには例外処理が必要となります。

スクリーンショット_060414_042035_PM

全コード

Imports MySql.Data.MySqlClient
Public Class Form1
  Private Sub Form1_Load(sender  As Object, e As EventArgs) Handles MyBase.Load
  ' 1.接続文字列を作成する
  Dim Builder = New MySqlConnectionStringBuilder()
  ' データベースに接続するために必要な情報をBuilderに与える
  Builder.Server = "localhost"
  Builder.Port = 3306
  Builder.UserID = "root"
  Builder.Password = "root"
  Builder.Database = "test"
  Dim ConStr = Builder.ToString()

  ' 2.データベースに接続するためのコネクションを準備して、実際につなぐ
  Dim Con As New MySqlConnection
  Con.ConnectionString = ConStr
  Con.Open()

  ' 3.発行するSQL文を作成する
  Dim SqlStr = "SELECT * FROM users"

  ' 4.データ取得のためのアダプタの設定
  Dim Adapter = New MySqlDataAdapter(SqlStr, Con)

  ' 5.データを取得
  Dim Ds As New DataSet
  Adapter.Fill(Ds)

  ' 6.DataGridViewに取得したデータを表示させる
  DataGridView1.DataSource = Ds.Tables(0)

  ' 7.データベースの切断
  Con.Close()
  End Sub
End Class

投稿者紹介

大内 みさき
2014年入社。
日々修行中です。
初心者目線でブログを更新できればと思います。

人気の記事

コメント

  1. 松岡 良太 より:

    VBのボタンをクリックしたらデータベースにクリックした時間を記入できるようなプログラムって簡単にかけるものですか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP