.NET 操作 PostgreSQL-首次使用及坑

作者:vkvi 来源:千一网络(原创) 日期:2021-1-28

使用 NuGet 安装组件

在 Visual Studio 中,项目上右键 -> 管理 NuGet 程序包。搜索 PostgreSQL。

有两个在顶部的,一个是针对 .NET Core 的,一个是针对 .NET Framework 的。

使用 NuGet 安装组件

使用

就像操作 SQL Server 那样操作,只是几个类换一下。

SqlConnection -> NpgsqlConnection

SqlDataAdapter -> NpgsqlDataAdapter

SqlCommand -> NpgsqlCommand

对了,连接字符串类似:

Server=127.0.0.1; Port=5432; User Id=postgres; Password=pwd; Database=test;

坑一、未能加载文件或程序集 System.ValueTuple

未能加载文件或程序集“System.ValueTuple, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或它的某一个依赖项。系统找不到指定的文件。

一切就绪,可是提示上面这个错误,我写一个 System.ValueTuple(注意不是 Type),按 F12,向上追踪,发现我的版本是 4.0.3.0,对不上。

我的 .NET Framework 是 4.6.2,我不想调整我的 .NET Framework 版本,于是我降 Npgsql 的版本,降了好几个都不行,后来降到 3.2.0,可以了。

如果是 .NET Framework 3.5,则最高只能安到 2.2.7。

坑二、不支持的认证模式

Authentication method not supported (Received: 10)

针对这个错误,在目录(参考):C:\Program Files\PostgreSQL\13\data

打开 pg_hba.conf

这里配置了各种环境下怎么连接,我是 IPv4,我就找到 IPv4,看到 METHOD 那列写的 scram-sha-256,将其改为 password,成功。

PostgreSQL 连接方法

关于这个文件的详细配置说明,可参考:https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html

当然,因版本不同,这个文件可能位于不同的目录,可通过 SQL Shell 输入 show hba_file; 查看:

pg_hba.conf

相关文章