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

C#

MySqlConnectorを使ってC#からMySQLに接続し、データを取得する方法について解説します。

スポンサーリンク

環境

  • Visual Studio 2022
  • .NET 6.0
  • MySQL 8.0.26

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

事前にMySQLでテーブルを作成しておきます。
※MySQLのダウンロードはこちらから(画像はWindowsの場合)
 https://dev.mysql.com/downloads/

まずデータベース(スキーマ)を作成します。
※MySQL Command Line Clientを使って説明しますが、MySQL WorkbenchなどのGUIツールを使って作成しても構いません。

「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で新しいプロジェクトを作成します。今回はコンソールアプリを使った例で解説します。

プロジェクトが起動したら、ソリューションエクスプローラーからプロジェクト名を右クリックし、「NuGetパッケージの管理」をクリックします。

「参照」で「MySqlConnector」と検索し、表示された「MySqlConnector」をインストールしてください。

※MySQLに接続する他のプロバイダーとしては、公式(Oracle社)が提供する「MySql.Data」がありますが、今回はよりパフォーマンスが優れるとされる「MySqlConnector」を使用します。
【参考】https://github.com/mysql-net/MySqlConnector

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

それではC#からローカルのMySQLに接続して、テーブルの内容を取得してみましょう。
以下のプログラムを書いてCtrl + F5で実行すると、テーブル内のデータがコンソール上に表示されるはずです。

using MySqlConnector;

// 接続文字列
var connectionString = "Server=localhost;User ID=root;Password=1234;Database=test";

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

using (var connection = new MySqlConnection(connectionString))
{
    // 接続の確立
    connection.Open();

    using (var command = new MySqlCommand(sql, connection))
    using (var reader = command.ExecuteReader())
    {
        // SELECT文を実行し、結果を1行ずつコンソールに表示
        while (reader.Read())
        {
            Console.WriteLine($"ID:{reader["id"]} 名前:{reader["name"]} 年齢:{reader["age"]}");
        }
    }
}

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

  • Server:接続先サーバのホスト名。自PC内のMySQLに接続する場合は「localhost」を指定
  • User ID:接続するユーザー名。今回はデフォルトの「root」を使用
  • Password:設定したパスワード。
  • Database:接続先のデータベース名。今回は事前に作成した「test」を指定

他にも接続オプションがあります。詳細については公式ドキュメントを参照してください。

実行結果

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

参考(公式ドキュメント)

High-Performance .NET MySQL Driver - MySqlConnector
MySqlConnector is a high-performance, asynchronous C# ADO.NET driver for MySQL Server, MariaDB, Amazon Aurora, Azure Database for MySQL, Google Cloud SQL for My...

コメント

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