Azule Api appでPostgreSQL接続に接続する為のサンプルです。
Azure上でデータベースの作成からソースコードの書き方まで。
■サーバ側の操作
赤枠を参考に設定をしていって下さい。
■クライアント側の操作
ここからはデータベースの作成。
本サンプルではPGAdminよりデータベースを作成しています。
サンプルでは初期データベース作成後、testというデータベースを右クリックから作成しています。
テーブルを作成します。
CREATE TABLE sample (
id varchar(10),
val varchar(10)
);
データをインサートします。
INSERT INTO sample (id, val) VALUES (’1′, ‘hogehoge’);
INSERT INTO sample (id, val) VALUES (’2′, ‘ahoaho’);
commit;
Azure上からも作成したデータベースを確認します。
開発環境の準備
NGetでデータベースを扱うために必要なパッケージをインストールします。
データベースから値を取得する為のサンプル。
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using Npgsql; namespace WebApplication2.Controllers { public class MyParemeter { public string val1 { get; set; } public string val2 { get; set; } } public class DefaultController : ApiController { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); // +++++++++++++++データベース接続 Start private static string Host = "postgresqlsrv2018.postgres.database.azure.com"; private static string User = "postgre@postgresqlsrv2018"; private static string DBname = "test"; private static string Password = "P@ssw0rd"; private static string Port = "5432"; // +++++++++++++++データベース接続 End // /api/HelloWorld public string Get([FromUri]MyParemeter parameter) { log.Info(string.Format("Get START", DateTime.Now)); String ret = "val1:" + parameter.val1 + "aaa"+ "," + "val2:" + parameter.val2 + "bbb"; // +++++++++++++++データベース接続 Start string connString = String.Format( "Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};", Host, User, DBname, Port, Password); var conn = new NpgsqlConnection(connString); Console.Out.WriteLine("Opening connection"); conn.Open(); var command = conn.CreateCommand(); command.CommandText = "SELECT * FROM sample;"; var reader = command.ExecuteReader(); while (reader.Read()) { ret = ret + reader.GetString(1).ToString(); } // +++++++++++++++データベース接続 End log.Info(string.Format("Get END", DateTime.Now)); return ret; } } }