VBでPostgreSQLに接続 その1
WindowsのVisual Studio Express 2015を使用してPostgreSQLに接続したい。
先に結論を書くとNpgsqlがVisualStudioExpress2015に未対応で接続できなかった。
ですが、その軌跡を書いてみます。
環境:Windows10
Visual Studio Express 2015
PostgreSQL 9.5
VBでPostgreSQLに接続するために
作業開始時の僕は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ですね!
質問してみました。
そしたら、
VisualStudioExpress2015にNpgsqlは対応していないと回答をいただきました。
「えーそもそもじゃん。じゃあどうすればいいのかな?」
もう一度、最初から調べなおしです。
「とほほ・・・」