iT邦幫忙

1

C#中使用PostgreSQL

小弟目前想透過 VisualStudio 使用c#來新增、更新及查詢postgresql裡的資料 但遇到了幾個不解的問題。
我是用Heroku上的Postgresql在一開始連接字串已不知從何下手。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Npgsql;


namespace ConsoleApplication3
{
    class Program
    {
        NpgsqlConnection conn = new NpgsqlConnection("Server=***-***-**31-116.compute-1.amazonaws.com; Port=5432;User Id=mmopgvc****;Password=7396c6f1ba66851eb89182c71e5509028d66e81b07f44e055ad2***********;Database=df3btm29******;");
        static void Main(string[] args)
        {
            NpgsqlConnection conn = new NpgsqlConnection("Server=***-***-**31-116.compute-1.amazonaws.com; Port=5432;User Id=mmopgvc****;Password=7396c6f1ba66851eb89182c71e5509028d66e81b07f44e055ad2***********;Database=df3btm29******;");
            conn.Open();

            NpgsqlCommand command =
                new NpgsqlCommand("select * from fixture", conn);

            try
            {
                NpgsqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    string fixno = reader["fixno"].ToString(); ;
                    string model = reader["model"].ToString(); ;

                    Console.WriteLine(fixno + "\t" + model);
                }
            }

            finally
            {
                conn.Close();
            }
        }
    }
}

在連接字串 Server=IP;Port=5432;User Id=使用者名稱;Password=使用者密碼;Database=連接的資料庫
問題一:我該如何正確對應的填入Heroku上給的資訊?(其他網站上都以本機資料庫為範例)
https://ithelp.ithome.com.tw/upload/images/20190902/20118967egqfLGskpK.png
問題二:在下圖中的錯誤該如何排解,原先使用了本機的資料庫也是相同問題。
https://ithelp.ithome.com.tw/upload/images/20190902/20118967423wDmeS6g.png

froce iT邦大師 1 級 ‧ 2019-09-02 16:31:30 檢舉
1.我沒用Heroku不太清楚,不過通常是ip還是domain name填入,剩下就照著填
2.去設定pg_hba.conf,這個檔案是控制postgresql連入的檔案,沒設定過這個檔案基本上是不能遠端連線的,可能還要設定postgresql.conf。
請參考:
https://expect7.pixnet.net/blog/post/38215756-%5B%E7%A8%8B%E5%BC%8F%5D%5Bpostgresql%5D-%E5%A6%82%E4%BD%95%E9%81%A0%E7%AB%AF%E9%80%A3%E7%B7%9A%EF%BC%9F

不過請不要學他設定,連線ip、database那些你要設對。
40527145 iT邦新手 5 級 ‧ 2019-09-03 15:52:03 檢舉
已經可以初步連接了
感謝樓上
連接字串只須按照Heroku給的資訊依序複製上並在最後加上 SslMode=Require
接著
打開 安裝目錄/data/pg_hba.conf
最後一行補上
host all all 0.0.0.0/0 md5
都完成後重新啟動postgres 即可完成連接

參考網站:
https://www.itread01.com/content/1546483456.html?fbclid=IwAR2POwTPyjp0RXnMGBm1Vx2BPG3N1VwtY0K4Zdkc3D1teCcrUFcoPffhSAU

https://blog.cashwu.com/blog/asp-net-core-mvc-heroku-postgresql/?fbclid=IwAR39q_pmR-TK4lk0Z74USOEaciO0Cfwh4WfZQscUufDSK6OwHKsxVIjv34Q
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
小魚
iT邦大師 1 級 ‧ 2019-09-02 16:49:18

可以考慮 這一篇

40527145 iT邦新手 5 級 ‧ 2019-09-03 13:23:46 檢舉

嘗試過了 依然發生上述兩項問題

小魚 iT邦大師 1 級 ‧ 2019-09-03 14:00:50 檢舉

你先找個人家寫好的連資料庫的軟體,
看看能不能連到你的資料庫,
也許問題不是出在C#...

我要發表回答

立即登入回答