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」を指定
実行結果
無事コンソール上にテーブル内容が表示されました。

コメント