ちょっとVB 2005からMySQLのデータを使うということをやりたいのでわかった順番にいろいろと書いていこうと思います。
今回はまずDataGridViewをつかってMySQLのデータベースからテーブルの中身を取得し表示しようと思います。
サンプルにつかったデータは日本郵便の大阪府の郵便番号データです。
と思ったらphpMyAdminから郵便番号情報のインポートを説明するサイトがありました。
で、「japanpost」というデータベースに「zipcode」というテーブルを作成しそこにデータをインポートしました。
特にデータベースの内容は問わないのでこれにあわせる必要はありません。
追記:データベースの照合順序はsjis_japanese_ciにします。UTF8ではWindowsでODBCから開いたときに文字化けしました。
それと、ODBC経由でMySQLに接続するデータベースドライバ「MySQL Connector/ODBC 5.1」をここからダウンロードしインストールしておきます。
ではプログラムの作成をします。
"DRIVER={MySQL ODBC 5.1 Driver};SERVER=(サーバーのアドレス);DATABASE=(データベース名);UID=(ユーザー名);PWD=(パスワード);OPTION=3"
の様な接続文字列を作りサーバーにODBCで接続し、
"SELECT * FROM zipcode"
というSQLを発行します。
(ここを変えることで違うクエリを発行できます。)
そしてその結果を
DAdapter.Fill(DSet, "テーブル名")
Fill関数を使ってDataSetに(テーブル名)という名前のテーブルで登録します。
このテーブル名はプログラム上に作成されるテーブルなのでMySQLサーバーでのテーブル名とは異なるものでも構いません。
最後に
DataGridView1.DataSource = DSet.Tables("テーブル名")
でDataSetの(テーブル名)というテーブルをDataGridViewのデータソースに指定します。
具体的なコードは以下を参照してください。
サーバーアドレス「192.168.1.50」にユーザー名「test」パスワード「testpass」で接続し、
データベース「japanpost」のテーブル「zipcode」を取得しDetaGridViewに表示するサンプルです。
「Form1」に以下のようにコントロールを配置します。
「DataGridView1」という名前でDetaGridViewを(濃い灰色の枠)
「Button1」という名前でButtonを作ります(「実行」というボタン)
Form1のコード
<code>Public Class Form1 Dim DSet As New System.Data.DataSet Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim ConnectionString As String = "DRIVER={MySQL ODBC 5.1 Driver};" & _ "SERVER=192.168.1.50;" & _ "DATABASE=japanpost;" & _ "UID=test;PWD=testpass;OPTION=3" Dim connection As New System.Data.Odbc.OdbcConnection(ConnectionString) connection.Open() Dim SQLTest As String = "SELECT * FROM zipcode" Dim DAdapter As New System.Data.Odbc.OdbcDataAdapter(SQLTest, connection) DAdapter.Fill(DSet, "zipcode") DataGridView1.DataSource = DSet.Tables("zipcode") connection.Close() End Sub End Class</code>
参考になりました。
他のサイトを巡ってやっとたどり着きました。