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からはじめる備忘録
その他の備忘録も以下のページでまとめていますので、よろしければアクセスしてください。
以上!!