以前にPythonからPostgreSQLに接続してデータを取得する方法を紹介しました。今回はc#からPostgreSQLに接続してデータを取得するところまでを紹介していこうと思います。
文法的な違いだけで、大きな部分はPythonと大きく変わりません。
環境
以下、今回の動作環境です。
- .NetCore 6.0.3
- Windows11
- VS Code
Npgsqlの導入
今回PostgreSQLへの接続にはNpgsqlというライブラリを用います。Nugetで取得します。
[F1]を押してNuget Package Manager: Add Packageを選択します。その後Npgsqlと入力し、先頭にあるNpgsqlを選択するとインストールが始まります。
プログラム
ここからは実際にプログラムを書いていきます。
接続文字列の作成
最初に接続文字列を作成します。以下の情報が接続に必要となります。
- ホスト
- ポート
- ユーザ名
- パスワード
- DB名
これらの情報を、以下のような形の文字列とする必要があります。この後紹介するコードでは、connectionTextが文字列情報を保持します。
“Server=localhost;Port=5432;Username=postgres;Password=postgresql;Database=dvdrental”
using Npgsql;
namespace ConnectPostgres
{
class Program{
static void Main(string[] args){
string server = "localhost";
string port = "5432";
string username = "postgres";
string password = "postgresql";
string database = "dvdrental";
//接続文字列の作成
string connectionText = $"Server={server};Port={port};Username={username};Password={password};Database={database}";
}
}
}
接続してSQL実行
以降はPostgreSQLに接続した後、SQLを実行してデータを取得します。PostgreSQLに接続するオブジェクトNpgsqlConnection()を作成します。引数には接続文字列を渡します。
続いて、NpgsqlCommand()の中でSQLを実行します。command.ExecuteReader()の中に実行結果を保持しており、1行ずつ出力しています。
//接続オブジェクト
var connection = new NpgsqlConnection(connectionText);
string sql = "SELECT * FROM city";
using (var command = new NpgsqlCommand(sql, connection))
{
// 接続開始
connection.Open();
// sql実行
using (var reader = command.ExecuteReader())
{
// 1行ずつ読み取ってコンソールに表示
while (reader.Read())
{
Console.WriteLine($"city_id:{reader["city_id"]} 名前:{reader["city"]} country_id:{reader["country_id"]}");
}
}
}
>> city_id:1 名前:A Corua (La Corua) country_id:87
...
コード全体
最後の今回のコード全体を紹介します。
using Npgsql;
namespace ConnectPostgres
{
class Program{
static void Main(string[] args){
string server = "localhost";
string port = "5432";
string username = "postgres";
string password = "postgresql";
string database = "dvdrental";
//接続文字列の作成
string connectionText = $"Server={server};Port={port};Username={username};Password={password};Database={database}";
var connection = new NpgsqlConnection(connectionText);
string sql = "SELECT * FROM city";
using (var command = new NpgsqlCommand(sql, connection))
{
// 接続開始
connection.Open();
// sql実行
using (var reader = command.ExecuteReader())
{
// 1行ずつ読み取ってコンソールに表示
while (reader.Read())
{
Console.WriteLine($"city_id:{reader["city_id"]} 名前:{reader["city"]} country_id:{reader["country_id"]}");
}
}
}
}
}
}
まとめ
c#からPostgreSQLに接続してデータを取得する方法を紹介しました。接続自体はシンプルに実装できます。ここからDBに対するあらゆる操作をしていくことになり、今回はそのスタートという位置づけです。
参考になれば幸いです^^
ではでは👋