当前位置:首页 > 云服务器

C#怎么连接PotgreSQL数据库 C#使用Npgql驱动教程

游戏科技网2026年09月14日 21:29云服务器20
描述:最推荐使用 Npgsql 驱动连接 PostgreSQL,它专为 .NET 设计、开源高性能、支持 .NET 5+ 和 .NET Framework 4.6.1+;需通过 NuGet 安装,配置正确连接字符串并使用参数化查询防注入。用 C# 连接 PostgreSQL 最常用、最推荐的方式就是使用…
最推荐使用 Npgsql 驱动连接 PostgreSQL,它专为 .NET 设计、开源高性能、支持 .NET 5+ 和 .NET Framework 4.6.1+;需通过 NuGet 安装,配置正确连接字符串并使用参数化查询防注入。

C#怎么连接PotgreSQL数据库 C#使用Npgql驱动教程

用 C# 连接 PostgreSQL 最常用、最推荐的方式就是使用 Npgsql —— 它是专为 .NET 设计的开源、高性能、完全兼容的 PostgreSQL 数据库驱动,支持 .NET 5/6/7/8、.NET Framework 4.6.1+ 和 .NET Standard 2.0+。

安装 Npgsql 包

在项目中引入 Npgsql,推荐用 NuGet 包管理器(Visual Studio 或命令行):

  • Visual Studio:右键项目 → “管理 NuGet 包” → 搜索 Npgsql → 安装最新稳定版(如 8.x
  • 命令行(.NET CLI):dotnet add package Npgsql
  • 若需 Entity Framework Core 支持,额外安装:dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

配置连接字符串

PostgreSQL 连接字符串格式如下(关键参数要填对):

C#怎么连接PotgreSQL数据库 C#使用Npgql驱动教程
word-document-organizer

智能整理Word文档,自动排版、生成目录、统一样式,支持学术/商务/极简模板。

下载
Host=localhost;Port=5432;Database=mydb;Username=postgres;Password=mypassword;
  • Host:数据库服务器地址,本地可写 localhost127.0.0.1;远程需填实际 IP 或域名
  • Port:默认是 5432,若修改过 PostgreSQL 的 postgresql.conf 需同步更新
  • Database:目标数据库名(需已存在)
  • Username/Password:数据库用户凭据,建议不用超级用户(如 postgres),而用最小权限账号
  • 可选增强:加 Pooling=true;(默认开启,提高性能)、SSL Mode=Require;(启用 SSL)

基础连接与查询示例

以下是最简可用的同步代码(控制台程序为例):

1

2

3

4

5

6

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)
  • 涉及用户输入时,**必须使用参数化查询**防止 SQL 注入,例如:cmd.Parameters.AddWithValue("@name", name);

常见问题快速排查

连不上?先检查这几项:

  • PostgreSQL 服务是否运行?在终端执行 sudo systemctl status postgresql(Linux)或查看 Windows 服务
  • 用户是否有连接权限?确认 pg_hba.conf 中有对应 host 类型的访问规则(如 host all all 127.0.0.1/32 md5
  • 防火墙是否放行 5432 端口?特别是云服务器(阿里云/腾讯云等)要检查安全组
  • 密码错误或数据库不存在会直接抛 NpgsqlException,捕获后打印 ex.Message 很有帮助
  • .NET 6+ 项目若报“找不到引用”,检查是否遗漏 using Npgsql; 或目标框架是否兼容(Npgsql 8 要求 .NET 6+)

基本上就这些。Npgsql 上手快、文档全、社区活跃,搭配 Dapper 或 EF Core 可进一步提升开发效率。不复杂但容易忽略细节——尤其连接字符串和权限配置。

“C#怎么连接PotgreSQL数据库 C#使用Npgql驱动教程” 的相关文章

5元云服务器:入门级新手首选

5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得…

6元服务器租用,高性价比VPS主机推荐

6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我…

2021年云服务器优惠套餐推荐

2021年云服务器优惠套餐推荐 嗨,朋友们!你是否曾经在深夜里,面对一堆代码和服务器错误,感叹说:“为什么我的项目老是卡顿?”如果是这样的话,那你可能正在寻找2021年云服务器优惠套餐的解决方案。作为…

云服务器市场增长

云服务器市场增长 大家好,作为一个每天依赖云服务器的开发者,我亲身感受到市场的飞速膨胀。想象一下,几年前我还得在办公室的老旧电脑前苦苦挣扎,处理数据时总是卡顿不堪,但现在,只需轻轻一点,就能在云端获得…

1元买走一台云服务器,这种天上掉馅饼的事存在吗?

1元买走一台云服务器,这种天上掉馅饼的事存在吗? 那天,我在咖啡馆里刷手机,偶然看到一个广告:“只需1元,就能买走一台高性能云服务器!容量无限,稳定快速,适合创业和学习。”我的心跳突然加速了。作为一个…

云服务器10元月:经济型服务价格新记录

云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚…