C# MySql.Data を使用して MySQL サーバーへ接続する方法をまとめます。
目次
やりたいこと
MySQL サーバーへ接続しコマンドを送信する C# コードを作成し、データベースの作成を目指します。

事前準備
1.MySQL サーバーの接続情報を用意する
接続したい MySql サーバーの以下情報を用意してください。
・MySql サーバーのIPアドレスまたはドメイン名
・ユーザーID
・ユーザーパスワード
2.プロジェクトを開く
MySql を導入したいプロジェクトを用意し、Visual Studio 2017 で開いてください。
3.MySql.Data を導入する
事前に MySql.Data を導入する必要があります。導入がまだでしたら「C#で MySQL を使いたい(導入編)!!!」を参照してください。
手順概要
手順1.MySQL サーバーへコマンドを送信する関数を作成する
手順2.MySQL サーバーへコマンドを送信する
手順1.MySQL サーバーへコマンドを送信する関数を作成する
using を追加する
MySQL クライアント関数群を使用するため、以下の様に using を追加します。
// 追加 using MySql.Data.MySqlClient;
MySQL サーバーへ接続するための情報を作成します。
以下に例を示します。「localhost, testuser, testpsw」はご自身の情報に合わせて変更してください。
private static readonly string connectionString =
string.Format(@"Host={0};User Id={1};Password={2};Persist Security Info=False;",
"localhost", // MySQLサーバーのIPアドレスまたはドメイン名を指定
"testuser", // ユーザーIDを指定
"testpsw"); // ユーザーパスワードを指定
MySQL サーバーへコマンドを送信するための関数を作成します。
以下の2関数を作成してください。各関数の説明はコメントを確認してください。
/// <summary>
/// MySQLにコマンド送信
/// </summary>
/// <param name="command">MySQLへ送信するコマンド</param>
/// <returns>true:成功, false:失敗</returns>
public static bool Send(string command)
{
bool ret = true;
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
using (MySqlCommand cmd = new MySqlCommand(command, connection))
{
try
{
// ポートオープン
cmd.Connection.Open();
// 送信
cmd.ExecuteNonQuery();
}
catch (Exception)
{
ret = false;
}
}
}
return ret;
}
/// <summary>
/// MySQLにコマンドを送信し値を取得する
/// </summary>
/// <param name="command">MySQLへ送信するコマンド</param>
/// <param name="dt">受信した値</param>
/// <returns>true:成功, false:失敗</returns>
public static bool SendRead(string command, ref System.Data.DataSet ds)
{
bool ret = true;
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
using (MySqlDataAdapter da = new MySqlDataAdapter(command, connection))
{
try
{
// 送受信
da.Fill(ds);
}
catch (Exception)
{
ret = false;
}
}
}
return ret;
}
作成したコードを以下のクラスにまとめます。MySQL クラスを完成させましょう。
class MySQL
{
private static readonly string connectionString = // 手順1で作成した connectionString を追記しましょう。
///
/// MySQL サーバーへコマンドの送信のみを行う
///
///MySQLへ送信するコマンド
/// true:成功, false:失敗
public static bool Send(string command)
{
// 手順1で作成した Send 関数の中身を記載しましょう。
}
///
/// MySQL サーバーへコマンドを送信し、MySQL サーバーから値を取得する
///
///MySQLへ送信するコマンド
///受信した値
/// true:成功, false:失敗
public static bool SendRead(string command, ref System.Data.DataTable dt)
{
// 手順1で作成した SendRead 関数の中身を記載しましょう。
}
}
手順2.MySQL サーバーへコマンドを送信する
作成したクラスを使って、MySQL サーバーにデータベースを作成してみましょう
以下のコードを実行関数の中に追加しましょう。MySQL クラスは実行関数と同じ namespace に定義しましょう。
// データベース作成
MySQL.Send("CREATE DATABASE testdb;");
追加した関数を実行しましょう。
コマンドプロンプトから MySQL サーバーに接続してみましょう。
以下のコマンドをコマンドプロンプトから実行し、パスワードを入力してください。「localhost, testuser」はご自身の情報に合わせて変更してください。
mysql -u testuser -h localhost -p

データベースが追加されたか確認してみましょう。以下のコマンドをコマンドプロンプトから実行し「testdb」があれば成功です。
SHOW DATABASES;

まとめ
C#で MySQL サーバーに対して、実際にデータベースを作成してみました。
今回お見せした2関数は、MySQL コマンドを変更するだけで殆どの MySQL コマンドを実行できます。是非お試しください。
関連するページ
本記事の導入編を以下に記載していますので、よろしければアクセスしてください。
Wantからはじめる備忘録
その他の備忘録も以下のページでまとめていますので、よろしければアクセスしてください。
以上!!
