C# で MySQL サーバーに接続したい(実践編)!!!

投稿者: | 2018年2月5日

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からはじめる備忘録

その他の備忘録も以下のページでまとめていますので、よろしければアクセスしてください。

以上!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です