VisualStudio2019以降を使ってC#からMySQLに接続する方法を解説します。
VisualStudioに付属のNuGetを使えばC#からMySQLを利用するためのMySQLパッケージ導入も簡単です。
今回はさらに説明を簡単にするためMySQLサーバの利用はXAMPPを利用します。すでにMySQLサーバを導入済みの方はそちらのMySQLを起動しておいてください。
以前はMySQL ConnectorをインストールしてからVisualStudioで設定をしてMySQLに接続という手順でしたが、NuGetに登録された.NETパッケージも増えてきました。MySQLもその1つです。NuGetは.NET開発環境に簡単にパッケージを導入できる仕組みです。
プロジェクトの準備
Visual Studioを起動して 新しいプロジェクトの作成(N) を選択します。

C# > コンソール アプリ(.NET Core) を選択します。
MySQLへの接続を確認するだけであれば、コンソールアプリで十分です。

プロジェクト名に「MySQL接続テスト」と入力して作成ボタンをクリックします。

NuGetによるMySQLパッケージインストール
プロジェクト作成後、右側のソリューションエクスプローラーにあるプロジェクト名「MySQL接続テスト」を右クリックします。

表示されたメニューの中にある NuGet パッケージの管理(N)… を選択します。

NuGet パッケージマネージャーが表示されます。
参照タブをクリックします。

検索ボックスに「mysql」と入力するとすぐに MySql.Data パッケージが見つかるのでクリックして選択します。

インストールボタンをクリック。

インストールされるファイルが表示されるのでOKボタンをクリックします。

ライセンスの同意画面が表示されます。
同意するをクリックします。(ちょっとうるさい感じですよね!)

ボタンがアンインストールに変わるとパッケージのインストール完了です。
ここでNuGetのタブは閉じて大丈夫です。

ソリューション エクスプローラーの
依存関係 > パッケージ とたどるとMySql.Dataが追加されているのが分かります。

プロジェクトの準備は以上です。
MySQLの起動とデータベースの確認(XAMPP)
C#から接続する前にMySQL自体を起動しておかなければなりません。MySQLの起動と合わせてデータベースの内容確認もしておきます。
MySQLをインストールした場合、デフォルトでmysqlというデータベースが最初から存在します。
実際にmysqlというデータベースが存在するのかまずは確認を行います。
XAMPPをインストールしていれば以下のように確認できます。
XAMPPコントロールパネルを起動します。

XAMPPコントロールパネルが起動したらApacheとMySQLのそれぞれ右側にあるStartボタンをクリックします。
MySQLを使うだけであれば、Apache(サーバ)を起動する必要はないのですが、この後ブラウザからMySQLデータベースの内容を確認できるphpMyAdminを使うためApacheを起動しています。

しばらくするとボタンの表示がStopに変わり、ApacheとMySQLの文字の背景が緑色に変わります。
正常起動した場合は、緑色です。赤や黄色だと正常に起動していません。確認を行って下さい。
次にMySQLの部分のAdminというボタンをクリックします。

ブラウザが起動しphpMyAdminの画面が表示されます。
phpMyAdminは、ブラウザ上でMySQLをビジュアルに操作できるソフトです。データベースやテーブルの作成がある程度ビジュアル操作で行うことができます。
mysqlというデータベースが存在していることが確認できます。
今回はこの最初から存在するmysqlというデータベースにC#スクリプトから接続してみます。

ちなみにmysqlというデータベースは、MySQLを利用する上で大事なデータベースです。書き換えたり削除したりしないでください。
次にMySQLに接続するためのC#スクリプトを作成します。
MySQL接続テストプログラムの作成(Program.cs)
XAMPPをインストールした場合、MySQLへの接続情報は、デフォルトでは下記の表のようになっています。
MySQLホスト名 | localhost |
ユーザ名 | root |
パスワード | なし |
上記3つの項目情報をC#スクリプトから全て利用します。
インストールしたMySQLパッケージを利用するためには、C#スクリプトの先頭で以下の記述をしておきます。
using MySql.Data.MySqlClient;
またMySQLデータベースへの接続情報は以下のような文字列として作成しておきます。
1 2 3 4 5 6 7 | // MySQLへの接続情報 string server = "localhost" ; string database = "mysql" ; // デフォルトで存在するデーターベース string user = "root" ; string pass = "" ; string charset = "utf8" ; // 文字コードセット string connectionString = string .Format( "Server={0};Database={1};Uid={2};Pwd={3};Charset={4}" , server, database, user, pass, charset); |
これら作成した文字列をMySqlConnectionクラス生成時に引数として渡します。
1 | MySqlConnection connection = new MySqlConnection(connectionString); |
接続にはOpen()メソッド、接続解除はClose()メソッドとなります。
1 2 3 | connection.Open(); // 接続 Console.WriteLine( "MySQLに接続しました!" ); connection.Close(); // 接続の解除 |
プログラム全体を以下に示します。
Program.cs全体
/* | |
Visual Studio 2019からMySQLに接続するプログラムを作成する前の準備事項 | |
ファイルメニューから プロジェクト > NuGet パッケージの管理(N)... を選択 | |
参照タブを選択し「mysql」で検索して表示される「MySql.Data」をインストールする | |
*/ | |
using System; | |
// MySQLを使うため | |
using MySql.Data.MySqlClient; | |
namespace MySQL接続テスト | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
// MySQLへの接続情報 | |
string server = "localhost"; | |
string database = "mysql"; | |
string user = "root"; | |
string pass = ""; | |
string charset = "utf8"; | |
string connectionString = string.Format("Server={0};Database={1};Uid={2};Pwd={3};Charset={4}", server, database, user, pass, charset); | |
// MySQLへの接続 | |
try | |
{ | |
MySqlConnection connection = new MySqlConnection(connectionString); | |
connection.Open(); // 接続 | |
Console.WriteLine("MySQLに接続しました!"); | |
connection.Close(); // 接続の解除 | |
} | |
catch (MySqlException me) | |
{ | |
Console.WriteLine("ERROR: " + me.Message); | |
} | |
} | |
} | |
} |
動作確認
実行後、うまくMySQLに接続できると以下のようなコンソール画面が表示されます。

うまく行きましたでしょうか?
以上、C#からMySQLに接続する【VS2019編】でした。
コメント
C# からmysqlに接続するのに、ネット
で散々検索しても、「参照の追加」以降の
画面から、実物と全く違うので、mysql.data
に到達できず、あきらめかけていましたが、
おかげ様で完璧でした。
ちなみに、私はWindows10でMAMPを使っていましたが
全く問題ありませんでした。
伊部英史さん、こんにちは。
管理人です。
実はこのmysql接続の記事は、以前書いた内容が古くなっていることに気づき最近書き直した記事でした。
お役に立てて良かったです。
XAMPPに似た環境にMAMPというものもあるんですね。
ありがとうございます。勉強になりました。