C#からMySQLに接続する【VS2019編】

c_charp_logoC#
スポンサーリンク

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コントロールパネル起動の画像

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

XAMPP_ApacheとMySQLの起動の画像

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

次にMySQLの部分のAdminというボタンをクリックします。

XAMPP_PHPMyAdminの起動の画像

ブラウザが起動しphpMyAdminの画面が表示されます。
phpMyAdminは、ブラウザ上でMySQLをビジュアルに操作できるソフトです。データベースやテーブルの作成がある程度ビジュアル操作で行うことができます。

mysqlというデータベースが存在していることが確認できます。
今回はこの最初から存在するmysqlというデータベースにC#スクリプトから接続してみます。

phpMyAdminのイメージ画像

ちなみにmysqlというデータベースは、MySQLを利用する上で大事なデータベースです。書き換えたり削除したりしないでください。
次にMySQLに接続するためのC#スクリプトを作成します。

MySQL接続テストプログラムの作成(Program.cs)

XAMPPをインストールした場合、MySQLへの接続情報は、デフォルトでは下記の表のようになっています。

MySQLホスト名localhost
ユーザ名root
パスワードなし

上記3つの項目情報をC#スクリプトから全て利用します。

インストールしたMySQLパッケージを利用するためには、C#スクリプトの先頭で以下の記述をしておきます。

using MySql.Data.MySqlClient;

またMySQLデータベースへの接続情報は以下のような文字列として作成しておきます。

// 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クラス生成時に引数として渡します。

MySqlConnection connection = new MySqlConnection(connectionString);

接続にはOpen()メソッド、接続解除はClose()メソッドとなります。

connection.Open();	// 接続
Console.WriteLine("MySQLに接続しました!");
connection.Close();	// 接続の解除

プログラム全体を以下に示します。

Program.cs全体

動作確認

実行後、うまくMySQLに接続できると以下のようなコンソール画面が表示されます。

うまく行きましたでしょうか?
以上、C#からMySQLに接続する【VS2019編】でした。

スポンサーリンク
C#
スポンサーリンク
dennouをフォローする
電脳産物

コメント

  1. 伊部英史 より:

    C# からmysqlに接続するのに、ネット
    で散々検索しても、「参照の追加」以降の
    画面から、実物と全く違うので、mysql.data
    に到達できず、あきらめかけていましたが、
    おかげ様で完璧でした。

     ちなみに、私はWindows10でMAMPを使っていましたが
    全く問題ありませんでした。

    • dennou より:

      伊部英史さん、こんにちは。
      管理人です。

      実はこのmysql接続の記事は、以前書いた内容が古くなっていることに気づき最近書き直した記事でした。
      お役に立てて良かったです。

      XAMPPに似た環境にMAMPというものもあるんですね。
      ありがとうございます。勉強になりました。