n-hirokiのプログラミング軌跡

プログラミングのメモ

VBでPostgreSQLに接続 その1

WindowsVisual Studio Express 2015を使用してPostgreSQLに接続したい。

今回はC++C#ではなくVBで行う。

 

先に結論を書くとNpgsqlがVisualStudioExpress2015に未対応で接続できなかった

 

ですが、その軌跡を書いてみます。

 

環境:Windows10

          Visual Studio Express 2015

          PostgreSQL 9.5 

 

VBPostgreSQLに接続するために

作業開始時の僕はVBとVisualStudioExpress2015自体触ったことのない状態からスタート。

何をすればいいのか全くわからなかったので、まずVisualStudioExpress2015をWindowsにインストールするところから始める。(今回はVisual Studio Expressのインストールのやり方は説明しませんが、画面の指示通りにやったら簡単にインストールできました。)

 

ローカルでPostgreSQLにDB作成

コマンドプロンプトを管理者権限で開く。

「C:」まで移動し、

psql -U postgres 実行  → PodtgreSQLに接続完了

 

データベース「testdb」作成

create database testdb; 

 

テーブル作成「profile」作成

カラムは「id」と「name」だけ。

create table profile(id int PRIMARY KEY, name text);

 

簡単にですがこれでデータベースとテーブルができた。

 

早速壁にぶつかる

・VisualStudioExpress2015の使い方

VBの文法など全般

VBでのPostgreSQLへの接続のやり方

などが全くわからない。

 

なのでひたすらGoogle先生に教わります。

Npgsql

Google先生に聞いてみたら、Npgsqlをimportsするとできるらしい。

 

Npgsqlとは、簡単に言うとC#/VBからPostgreSQLに接続するためのオープンソース・ライブラリ

 

以下のサイトを主に参考にさせていただきました。

vb.netでpostgresqlのデータベース接続、操作してみる

 

実際にそのサイトに書いてあるコードをVisualStudioExpress2015にコーディングして試して見る。

VisualStudioExpress2015の使い方もわからないので、Google先生に聞きながらやってみる。

 

 

先ほどのサイトに書いてある通り、実際にビルドしてみるとエラーに。

 

「そりゃそうだ。」

 

Npgsqlがダウンロードされていないからだ。

 

Npgsqlをダウンロード

Npgsql.dllはPostgreSQLのスタックビルダでダウンロードする。

ダウンロードが完了したら、PostgreSQLのファイルにNpgsql.dllが追加されているはず。

 

次にVisualStudioExpress2015の設定。

まずはソリューションエクスプローラのプロジェクトを右クリックし「参照の追加」を選択。

ここから、「PostgreSQL」をインストールしたフォルダに移動し、binフォルダ の中にある「Npgsql.dll」を選択する。

 

「Npgsql.dll」がない場合はダウンロードが出来ていないので、 PostgreSQLのスタックビルダを立ち上げてダウンロードし直す必要がある。

参照の追加が出来たらインポートを行う。

処理を書くファイル内の一番上に「Imports Npgsql」を追加する。

 

これで準備完了!

ビルドするとエラーが消えた。

早速デバッグ開始。

すると、Npgsql内で例外が発生して中断されてしまう。

 

「えっ、どうすればいいの?」

何回もコードが間違っていないかチェックしたが、ミスが見つからない。

DBもちゃんと作られている。

色々調べ色々試しましたが、全くわからない。

 

なのでこんな時のteratailですね!

teratail.com

質問してみました。

そしたら、

VisualStudioExpress2015にNpgsqlは対応していないと回答をいただきました。

「えーそもそもじゃん。じゃあどうすればいいのかな?」

もう一度、最初から調べなおしです。

 

 

「とほほ・・・」