Azule Api appでPostgreSQL接続

Azule Api appでPostgreSQL接続に接続する為のサンプルです。
Azure上でデータベースの作成からソースコードの書き方まで。


■サーバ側の操作
赤枠を参考に設定をしていって下さい。

001

002

003

005

006

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

■クライアント側の操作
ここからはデータベースの作成。
本サンプルではPGAdminよりデータベースを作成しています。
c002_DB作成

c003_DB作成

c004_DB作成

 

 

 

 

 

 

 

 

 

 

 

 

 

 

サンプルでは初期データベース作成後、testというデータベースを右クリックから作成しています。
c005_DB作成後

 

 

 

 

 

テーブルを作成します。
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上からも作成したデータベースを確認します。

c006_azure確認

 

 

 

 

 

 

開発環境の準備
NGetでデータベースを扱うために必要なパッケージをインストールします。

c007

c008

c009

 

 

 

 

 

 

 

 

 

 

 

 

データベースから値を取得する為のサンプル。

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;
        }
    }
}


Bookmark this on Yahoo Bookmark
Bookmark this on Google Bookmarks
Share on LinkedIn
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>