まずDB接続のC#プログラム構造
C#は
名前空間という概念
クラスという概念があって、クラスの中にメソッドを書いたり、変数を作ったりだとかで、VBAと考え方が違ってくるところがあって面白い。
DB接続関係の処理はDB接続関係の名前空間
を作って、DBクラスを作り、その中に変数、メソッドを作っていくことにしました。
名前空間とは
C#はライブラリが多いので、ライブラリ同士でメソッド名が被っても良いように名前空間という概念が存在します。
例えば、
Databaseのupdate というメソッドと、Listのupdateというメソッドがあるとすると、どちらともupdateというメソッドを使っていてどちらのメソッドを参照していいか機械がわからない。
C#はDatabase,Listを名前空間にして、
Database.update
List.update という記述のさせ方をすることによって、メソッド名を競合することを考えずに簡単に命名できるようになっている。
クラスについての概念説明はスキップします。
ポスグレSQL接続に必要なライブラリインストール
これ。
Database関連のクラス作ってみた。
赤いカッコでかこったのがDatabaseManagerというクラスです。
青いカッコ一番上は、public DatabaseManagerというのがDatabaseManagerクラスをnewしたとき(インスタンスを作成したとき)実行されるものです。
変数connectionStringにDB接続パラメータを入れています。
その下にある青いカッコたちはメソッドです。
どのメソッドも、クラスをnewして、DatabaseManager.ExecuteQueryなどで実行することが可能です。
PostgreSQL側の設定
pg_hba.conf の編集
C:\Program Files\PostgreSQL\17\data\pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
127.0.0.1/32はローカルマシンにポスグレSQLインストールしたのでローカルIPアドレスを指定。
学習まとめ
DB関係はDBクラスにまとめる を実践してみました。
クラスを作ってみたけど何をクラスにすればいいのか発想できるようにならなければ、今後のプログラム開発で大変な思いをしそうだなと感じた。