我必须远程连接数据库,即我使用计算机并连接某些计算机(使用远程桌面连接)。然后我尝试连接psql数据库,这是在另一台服务器上。我可以通过终端连接它(它工作),但我必须在我的C#脚本中使用它。 我读过我应该使用Npgsql.dll(我下载了Npgsql-2.2.3-net35)。 为了连接数据库我写道:
string connstring = "Host=xxx.xx.xxx.xxx;Port=5432;Database=yy;"
+ "User=zz;Password=xxxxxx;CommandTimeout=20;Ssl=true;";
NpgsqlConnection conn = new NpgsqlConnection (connstring);
if (conn != null && conn.State == ConnectionState.Closed)
{
Console.WriteLine ("Connection closed");
}
else
{
Console.WriteLine ("Connection opened");
};
conn.Open();
if (conn != null && conn.State == ConnectionState.Closed)
{
Console.WriteLine ("Connection closed");
}
else
{
Console.WriteLine ("Connection opened");
};
当我尝试运行我的脚本时,它不起作用。在conn.Open()返回后,我没有收到任何错误,但没有任何错误。我想,这可能是连接字符串的问题,因为当我删除Ssl = true时,我收到FATAL:28000:没有主机的pg_hba.conf(这是我的远程计算机的IP),用户" zz&# 34;,数据库" yy",SSL关闭。
有谁可以帮助我解决我的问题?
答案 0 :(得分:0)
我不知道它是否有用,但是总是用来与“Npgsql”建立连接的连接字符串如下:
string strConnString = "Server=" + odbc.Server + ";Port=" + odbc.Port + ";Timeout=1024;CommandTimeout=1024;UserId=" +
odbc.UserName + ";Database=" + odbc.DataBase + ";Password=" + odbc.PassWord;
NpgsqlConnection myConnection = new NpgsqlConnection(strConnString);
myConnection.Open();
答案 1 :(得分:0)
添加到服务器pg_hba.conf
文件,例如:
# Type database users addressIP auth.method
hostssl yy zz <Your IP> md5