【C#】MySQLに接続して直接SELECT文を実行する

C#

C#でMySQLに直接SELECT文を実行して、データを取得する方法をまとめました。

スポンサーリンク

環境

  • Windows10
  • Visual Studio Community 2019
  • .NET Framework 4.8
  • MySQL 8.0.24

準備1(MySQLでテーブルの作成)

事前にMySQLでテーブルを作成しておきます。
※既に作成済みのテーブルに接続する場合は飛ばしてください。
※MySQLのダウンロードはこちらから
 https://dev.mysql.com/downloads/

まずデータベースを作成します。今回はCommand Line Client(コマンドラインツール)を使って操作します。
まず適当にtestという名前のデータベースを作成します。

CREATE DATABASE test;
USE test;

次にシンプルなusersテーブルを作成し、

CREATE TABLE users (
id integer,
name varchar(10),
age integer
);

適当に3件のデータを追加します。

INSERT INTO users (id, name, age) VALUES (1, 'Mike', 30);
INSERT INTO users (id, name, age) VALUES (2, 'Lisa', 24);
INSERT INTO users (id, name, age) VALUES (3, 'Taro', 35);

全体的な流れと作成したテーブルの中身はこのような感じです。

準備2(パッケージのインストール)

Visual Studioで新しいプロジェクトを立ち上げます。今回はコンソールアプリにします。

C#でMySQLを使うためには参照の追加が必要になります。

プロジェクトが起動したら、ソリューションエクスプローラーで「参照」を右クリックし、「参照の追加」をクリックします。

「参照」で「mysql」と検索し、出てきた「MySql.Data」にチェックを入れてOKをクリックしてください。これで準備完了です。

C#からMySQLに接続してSELECT文を実行

それではC#からMySQLに接続して、テーブルの内容を取得してみましょう。
以下のプログラムを書いて実行すると、テーブル内容がすべて取得できます。

using MySql.Data.MySqlClient;
using System;

namespace MysqlApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // 接続文字列
            var connectionString = 
               "Server=localhost;Port=3306;Uid=root;Pwd=<設定したパスワード>;Database=test";

            // 実行するSQL
            var sql = "SELECT * FROM users";

            // 接続・SQL実行に必要なインスタンスを生成
            using (var connection = new MySqlConnection(connectionString))
            using (var command = new MySqlCommand(sql, connection))
            {
                // 接続開始
                connection.Open();

                // SELECT文の実行
                using (var reader = command.ExecuteReader())
                {
                    // 1行ずつ読み取ってコンソールに表示
                    while (reader.Read())
                    {
                        Console.WriteLine($"ID:{reader["id"]} 名前:{reader["name"]} 年齢:{reader["age"]}");
                    }
                }
            }
        }
    }
}

接続文字列には以下の5つを指定する必要があります。

  • Server:接続先サーバのホスト名。ローカル環境なら「localhost」を指定
  • Port:サーバのポート番号。自分で変更していなければ「3306」
  • Uid:接続するユーザー名。今回はデフォルトの「root」を使用
  • Pwd:設定したパスワード。
  • Database:接続するデータベース名。今回は「test」を指定

実行結果

無事コンソール上にテーブル内容が表示されました。

コメント

タイトルとURLをコピーしました