最推荐使用 Npgsql 驱动连接 PostgreSQL,它专为 .NET 设计、开源高性能、支持 .NET 5+ 和 .NET Framework 4.6.1+;需通过 NuGet 安装,配置正确连接字符串并使用参数化查询防注入。

用 C# 连接 PostgreSQL 最常用、最推荐的方式就是使用 Npgsql —— 它是专为 .NET 设计的开源、高性能、完全兼容的 PostgreSQL 数据库驱动,支持 .NET 5/6/7/8、.NET Framework 4.6.1+ 和 .NET Standard 2.0+。
在项目中引入 Npgsql,推荐用 NuGet 包管理器(Visual Studio 或命令行):
dotnet add package Npgsql
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
PostgreSQL 连接字符串格式如下(关键参数要填对):
Host=localhost;Port=5432;Database=mydb;Username=postgres;Password=mypassword;localhost 或 127.0.0.1;远程需填实际 IP 或域名5432,若修改过 PostgreSQL 的 postgresql.conf 需同步更新Pooling=true;(默认开启,提高性能)、SSL Mode=Require;(启用 SSL)以下是最简可用的同步代码(控制台程序为例):
using Npgsql;
<p>string connString = "Host=localhost;Port=5432;Database=testdb;Username=appuser;Password=123456;";
using var conn = new NpgsqlConnection(connString);
conn.Open();</p><p>using var cmd = new NpgsqlCommand("SELECT version();", conn);
var version = cmd.ExecuteScalar();
Console.WriteLine($"PostgreSQL 版本: {version}");
using 确保连接和命令对象被正确释放ExecuteScalar()(单值)、ExecuteReader()(多行结果)、ExecuteNonQuery()(INSERT/UPDATE/DELETE)cmd.Parameters.AddWithValue("@name", name);
连不上?先检查这几项:
sudo systemctl status postgresql(Linux)或查看 Windows 服务pg_hba.conf 中有对应 host 类型的访问规则(如 host all all 127.0.0.1/32 md5)NpgsqlException,捕获后打印 ex.Message 很有帮助using Npgsql; 或目标框架是否兼容(Npgsql 8 要求 .NET 6+)基本上就这些。Npgsql 上手快、文档全、社区活跃,搭配 Dapper 或 EF Core 可进一步提升开发效率。不复杂但容易忽略细节——尤其连接字符串和权限配置。
以上就是C#怎么连接PostgreSQL数据库 C#使用Npgsql驱动教程的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号