Connector/Netは.NET環境からMySQLデータベースにアクセスするためのオープンソースなライブラリ。 インストーラが用意されているので、インストーラの指示に従って「Next>」をクリックしていくだけで簡単にインストールすることができる。
ちなみに、Java環境から接続するためのConnector/J 3.2というものも存在する。
準備
ポート開放
まず、別のマシンからMySQLサーバーに接続するためには、3306番のポートが開いていなければならないので、開いてなければ開く必要がある。 3306番以外のポートを使用したい場合は、/etc/my.confを編集して使用するポートを指定する。
ソース修正
MySQLのテーブルからDateTime値を読もうとした場合に、値が'0000-00-00'(null)だと.NET FrameworkのDateTime型に変換できないため、ソースの以下の場所を修正した。 ここでは、値が'0000-00-00'だった場合は、暫定的にDateTime.MinValueを返すように変更した。
プロジェクトの設定
Visual StudioのプロジェクトでConnector/Netを使用するために、「参照の追加」ダイアログでMySQL.Data.dllを追加する。
Connector/Netのソースを修正したい場合は、MySQL.Data.dllのプロジェクト(C:\Program Files\MySQL\MySQL Connector Net 1.0.6\src\D:\Program Files\MySQL\MySQL Connector Net 1.0.6\src\MySql.Data.csproj)をソリューションに追加してから、「参照の追加」ダイアログでMySql.Dataのプロジェクトを追加する。
サンプル
System.Windows.FormやSystem.Dataなどのクラス群と連携するような使用方法は、一緒にインストールされるTable Editor(C:\Program Files\MySQL\MySQL Connector Net 1.0.6\samples\Table Editor)というサンプルが参考になる。 ここではこれらを用いない場合の簡単なサンプルを取り上げる。
基本的な流れ
まずは別のマシンからMySQLに接続して、データベースに含まれるテーブルの一覧を表示するためのVB.NETコード。 接続→コマンドの送信→結果の表示という基本的にな流れを記述している。
これを実行すると、testdbに含まれるテーブルの一覧が表示される。
ユーティリティメソッドの作成
コマンドを実行する度に、MySqlCommandのインスタンス生成と結果解析をするのは面倒なので、この処理をまとめて使いやすくするメソッドを作成する。 このメソッドは、コマンドをString型の引数として受け取り、結果をString()()型のジャグ配列として返却する。
このメソッドを使用する例は以下の通り。
実行例は下記の通り。