C#でPostgreSQLに接続して、データを取得する方法について解説します。
※Entity Framework Coreを使ってPostgreSQLを操作する方法については以下の記事で解説しています。
環境
- Visual Studio 2022
- .NET 6
- PostgreSQL 14.5
事前準備(PostgreSQLでテーブルの作成)
事前にPostgreSQLでテーブルを作成しておきます。
※既に作成済みのテーブルに接続する場合は飛ばしてください。
※PostgreSQLのダウンロードはこちらから
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
まずデータベースを作成します。psqlを使いますが、pgAdminなどで作成しても問題ありません。
適当にtestという名前のデータベースを作成します。
create database test;
\c 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);
SELECT文を実行し、作成したテーブルの中身を確認します。

プロジェクトの作成とパッケージのインストール
Visual Studioで新しいプロジェクトを立ち上げましょう。今回はコンソールアプリで解説します。
C#でPostgreSQLを使うためには「Npgsql」というパッケージが必要です。
ソリューションエクスプローラーからプロジェクト名を右クリックし、「NuGetパッケージの管理」をクリックします。

「参照」で「npgsql」と検索し、一番上に表示される「Npgsql」をインストールしてください。

C#からPostgreSQLに接続してSELECT文を実行
それではC#からPostgreSQLに接続して、SELECT文を実行してみましょう。
Program.csに以下のコードを書いて実行すると、テーブル内容がすべて取得できます。
using Npgsql;
// 接続文字列
var connectionString =
"Server=localhost;Port=5432;Username=postgres;Password=<設定したパスワード>;Database=test";
// 実行するSQL
var sql = "SELECT * FROM users";
// DB操作に必要なインスタンスを生成
using (var connection = new NpgsqlConnection(connectionString))
using (var command = new NpgsqlCommand(sql, connection))
{
try
{
// 接続開始
connection.Open();
// SELECT文の実行
using (var reader = command.ExecuteReader())
{
// 1行ずつ読み取ってコンソールに表示
while (reader.Read())
{
Console.WriteLine($"ID:{reader["id"]} 名前:{reader["name"]} 年齢:{reader["age"]}");
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
接続文字列には以下の5つを指定する必要があります。
- Server:接続先サーバのホスト名。ローカル環境なら「localhost」を指定
- Port:サーバのポート番号。自身で変更していなければ「5432」を指定
- Username:接続するユーザー名。今回はデフォルトの「postgres」を使用
- Password:自身で設定したパスワード
- Database:接続するデータベース名。今回は「test」を指定
実行結果
Ctrl + F5で実行すると、コンソール上にテーブル内容が表示されました。

※もしデバッグコンソールが実行後にすぐに消えてしまう場合は、以下の設定を変更してください。
メニューバーの ツール > オプション > デバッグ > 全般 > デバッグの停止時に自動的にコンソールを閉じる のチェックを OFF
【参考書籍】
PostgreSQLの基本操作やSQLについて学びたい場合におすすめです。
