今回は、monodevelopにて直接sqlに接続する方法についてまとめます。
postgresqlやmysqlであればサーバ不要で、直接sqlに接続することができます。
※sqliteだと出来ないようです。
まぁ、sqliteとpostgresqlやmysqlは用途が異なるのでそんなものか、と思いますが。
今回はpostgresqlを利用して、monodevelopと直接接続したいと思います。
なお、こちらの記事によりmonodevelopがインストールされていることを前提にします。
elsammit-beginnerblg.hatenablog.com
■postgresqlセットアップ
まずは下記でpostgresqlをインストールします。
apt-get install -y postgresql
次にpostgresqlを外部アクセスできるように設定します。
sudo vim /etc/postgresql/10/main/postgresql.conf
によりコンフィグファイルを編集します。
編集箇所ですが、60行目付近のlisten_addressesに対して、
#listen_addresses = 'localhost' listen_addresses = '*'
次に、
vi /etc/postgresql/10/main/pg_hba.conf
に対して100行目あたりを下記の通り編集します。
host all all 192.168.56.101/32 md5 ← IPアドレスは必要に応じて変更.
そして再起動を実行。
/etc/init.d/postgresql restart
これでpostgresqlのセットアップは完了です。
次にデフォルトユーザ名であるpostgresのパスワードを変更します。
ユーザをpostgresに切り替えて、
psql
を実行!!
その後、
alter role postgres with password 'pwd123'; ←pwd123にはパスワードを入力.
を実行。
そして、外部アクセスできるか下記で確認。
psql -U ユーザ名 -d データベース名 -h ホスト名
ログインができればセットアップは問題なく行えています。
■monodevelopでのsqlアクセス
まず、monodevelop上でパッケージをインストールします。
こちらのパッケージを押下するとパッケージ追加画面が表示されるので、
検索窓で"Npgsql"を入力。
一番トップにNpgsqlが表示されるかと思うので、パッケージを追加を押下。
次にこちらを参考にボタンとクリックイベントをセットして、、、
elsammit-beginnerblg.hatenablog.com
クリックイベント内で下記の通り実装します。
void Button_Clicked(object sender, EventArgs e) { string conn_str = "Server=192.168.56.101;Port=5432;User ID=postgres;Database=testdb;Password=postgres"; using(NpgsqlConnection conn = new NpgsqlConnection(conn_str)) { try { conn.Open(); string cmd_str = "insert into testTbl values('1','AAA')"; var cmd = new NpgsqlCommand(cmd_str, conn); cmd.ExecuteNonQuery(); conn.Close(); } catch { Console.WriteLine("error"); } } }
ServerにはIPアドレス、Portにはポート番号(postgresqlのデフォルトは5432)、IDはユーザ名、Databaseにはデータベース名、
PasswordにはIDで設定したユーザ名のパスワードを入力します。
。。。C#でのpostgresqlにアクセスするコードと同じですねw