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」を指定
他にも接続オプションがあります。詳細については公式ドキュメントを参照してください。
実行結果
無事コンソール上にテーブル内容が表示されました。

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

コメント