さて準備ができたところで.NETからどうやってMySQLに接続するのだろうといろいろ見てみたところ、MySQLのウェブサイト上にMySQL Connector/Netというのがありました。ADO .NET用のMySQLのDriverだそうです。それがないとMySQLに接続はできないでしょう。他にもいろいろプロバイダがあるようだが、今回はこれでやってみることにします。526kbと非常に軽い。インストールは簡単すぎて説明することがありません。
それをインストールするとC:\Program Files\MySQL\MySQL Connector Net 1.0.6\binにアセンブリが書くフレームワーク用に存在しています。うーむ・・・2.0用はまだないのか。仕方がないので1.1用で試してみることにします。早速MySqlGuiLibからMySql.Data.dllに参照を設定することにしよう。今の時点ではクラスを設計するよりも、とにかく接続してみたいのでTestClass.csをMySqlGuiLibに作ってそこにコードを書くことにします。コードを書く前にちょっと見ていただきたいのがこの間MySQL内のtestデータベースに作ったtbl_customerです。そのテーブルにNavicatを使って3つのデータをサンプル用に追加しました。下のテーブルをクエリーしてデータを取り出すコードを書くことにしましょう。

コードサンプル。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace MySqlGuiLib
{
public class TestClass
{
public void ConnectToMySql()
{
//とりあえずConnectionStringを決める。
string ConnStr = “database=test;User ID=root;Password=whatever;Host=localhost;Port=3306;”;
//MySqlconnectionのインスタンスを作成。
MySqlConnection Conn = new MySqlConnection(ConnStr);
//MySqlDataAdapterのインスタンスを作成。コンストラクタにSQLとMySqlConnectionを入れてやる。
MySqlDataAdapter da = new MySqlDataAdapter(“SELECT * FROM tbl_customer”, Conn);
//CommandTypeはText。
da.SelectCommand.CommandType = CommandType.Text;
//上のMySqlDataAdapterを利用してDataSetオブジェクトをデータで埋める。
DataSet ds = new DataSet(“顧客”);
//SQLを実行する前にMySqlconnectionを開く。
Conn.Open();
//SQLを実行してデータセットを埋める。
da.Fill(ds);
//Connectionを閉じる。
Conn.Close();
}
}
}
早速上のコードをテストするコードをUnitTestプロジェクト内に作ってみよう。テストのファイルはTestClassTest.vbと名前をつけました。

上のテストメソッドを右クリックして今度はTest With… ->Debuggerとし、Test.ConnectToMySql()にブレークポイントを置くと今度はユニットテストがデバッグモードでできてしまいます。da.Fill(ds);が実行した時点でdsの上にマウスを持っていって虫メガネアイコンをクリックするとDataSet Visualizerなるものが現れて、データセットの内容をグリッドに表示してくれます。これはありがたい!ただしVS2003でもXML Visualizer for Visual Studio .NET 2003というアドインを使用すると可能になります。

てな感じでVS2005(.NET Framework 2.0)からMySQL5.0への接続、クエリーが成功しました。これから徐々にいろいろなことをMySQL+VS2005で試して行こうと思います。もし「こんなこと試してほしい」ということがありましたらコメントいただければうれしいです。コメントに直接書いてくださってもかまいません。
このサンプルに用いたソースコードを下にアップしておきました。
MySqlGUI.zip (113.17 KB)
コメント書き込み