Visual Studio で MySQL データベースに接続する

MySQL Casual Advent Calendar 2015 15日目の記事です。
.NET 開発者で MySQL 使ってる人ってあまりいないんじゃないかと思ったんで、チュートリアルっぽいのひとつ考えてみました。

MySQL Connector/Net

C#VB など、.NET で業務系アプリを開発する場合、SQL Server へ接続するケースが多いと思います。そこで.NET Framework には SQL Server や OLEDB にアクセスするデータ プロバイダとして ADO.NET が用意されてます。

では .NET から SQL Server 以外のデータベースに接続したい場合どうすればいいのか。実はデータベースベンダーやオープンソースから専用のデータプロバイダが提供されてまして、おらくるなら ODP.NET、MySQL なら MySQL Connector/Net、PostgreSQL なら Npgsql といった具合に、ADO.NETインターフェイス互換のデータプロバイダが提供されてます。
以下、各データベースとデータプロバイダの関係を表にしてみました。

 RDBMS名   データプロバイダー名 
SQL Server ADO.NET
Oracle Oracle Data Provider for .NET(ODP.NET
MySQL MySQL Connector/Net
PostgreSQL Npgsql
FireBird FireBird .NET Provider


次のコードは、五つのデータプロバイダに接続してレコードを取得するサンプルです。各データプロバイダのインターフェイスはほぼ共通なので、各クラスのプレフィックスを変えれば、同様のコードで動作するのがわかると思います。便利ですね。でも、さすがに5種類もDB用意できないので動作確認してません。暇な方いたら試してみてくださいw


NuGet パッケージマネージャ

これら各データプロバイダですが、以前は各ベンダーのホームページからダウンロードしなければ入手できず、ベンダーさんによっては会員登録しなければ入手できないのもあって、ちょっと不便に感じてましたが、いまは Nuget という Visual Studio 搭載のパッケージマネージャで、プロジェクトに簡単にインストールできるようになりました。主要データプロバイダの殆どが Nuget で公開されてます。便利になりましたね。


まず Visual Studio を起動し、コンソールアプリケーションのプロジェクトを作成します。なおVisual Studio は2015を使ってます。


MySQL 用データプロバイダをプロジェクトにインストールします。ソリューションエクスプローラーで 「ソリューション」 もしくは 「プロジェクト」 を選択して右クリックし、「NuGet パッケージの管理」 をクリックします。すると、NuGet パッケージマネージャが起動します。


参照タブを選択し、検索文字に 「MySQL」 と入力すると、左ペインに候補となるパッケージ一覧が表示されます。で、一番上に表示された 「MySql.Data」 を選択し、右ペインのインストールをクリックすると、インストールを開始します。正常にインストールされたら、出力ウィンドウに 「正常にインストールされました」 とメッセージを表示し、プロジェクト参照に 「MySql。Data」 アセンブリが追加されます。


コンソールにテーブルの内容を出力します。


とりあえず実行するとこうなる・・・


いかがでしょう?Visual Studio でも MySQL サーバーに簡単に接続でき、データにアクセスできることが確認できたと思います。これからは.NET エンジニアも楽しい MySQL ライフを送りたいものですね♪ ちゃんちゃん