C# 提供程序:命名管道提供程序,错误:40-无法打开到SQL Server pgsql的连接

C# 提供程序:命名管道提供程序,错误:40-无法打开到SQL Server pgsql的连接,c#,postgresql,asp.net-web-api2,dapper,C#,Postgresql,Asp.net Web Api2,Dapper,我正在使用Dapper连接到pgsql数据库。下面的代码几天前还在工作。但我不知道为什么它现在不起作用。相同的凭据适用于pgadmin3,但不适用于c代码。 这里是控制器方法,为了简单起见,我在Get方法中编写了所有db代码 下面的代码是 public IEnumerable<Item> Get() { string connString = "Server=192.168.1.11;Database=db_alpha1;Uid=postgres;Pwd=xx

我正在使用Dapper连接到pgsql数据库。下面的代码几天前还在工作。但我不知道为什么它现在不起作用。相同的凭据适用于pgadmin3,但不适用于c代码。 这里是控制器方法,为了简单起见,我在Get方法中编写了所有db代码

下面的代码是

public IEnumerable<Item> Get()
    {
        string connString = "Server=192.168.1.11;Database=db_alpha1;Uid=postgres;Pwd=xxxxxx";

        using (IDbConnection db = new SqlConnection(connString))
        {
            db.Open();

            return db.Query<Item>("Select * From items").ToList();
        }
    }
以下是db.Open;行上的错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接


另外,我已经配置了pg_hba.conf文件,添加了我的系统ip地址。

感谢@Steve。问题解决了,这是一个愚蠢的错误,我更换了
SqlConnection与NpgsqlConnection,并添加了npgsql包。

SqlConnection是用于连接到Sql Server的类。您应该使用Npgsql ADO.NET提供程序中的相应类。我使用Dapper library进行数据库连接,我认为这是正确的连接方式,即使它在几天前还在工作。不,不能工作的是Sql Server,要使用Postgres,您应该使用它。Dapper与连接到数据库的代码无关。这是通过股票网络类SqlConnection、OleDbConnection或通过特定的ADO.NET提供商MySqlConnection、OracleConnection完成的。噢,谢谢Steve,这是我的错误,我在另一个项目中使用了ngpsql,现在它可以工作了。已回复,NpgsqlConnection与SqlConnection。