IRONSOFTWAREHOME
开发者更新

Npgsql C#(开发人员如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年4月21日

Npgsql 是一项关键技术,它在开发人员寻找强大的数据库工作方式时,实现 .NET 应用程序与 PostgreSQL 数据库之间的顺畅通信。 .NET Data Provider for PostgreSQL server,即 Npgsql,是数据库连接领域创造力、有效性和适应性的象征。 它允许 C#、Visual Basic 和 F# 用户访问数据库。 EF Core 用户还可以使用传统的Entity Framework 6.x。

一种广受欢迎的 .NET 库,名为 IronPDF,用于 C# 和 VB.NET 程序中生成、修改和显示 PDF 文档。 除了执行合并多个 PDF 文件、添加水印以及从现有 PDF 文件中提取文本或图像等复杂任务,IronPDF 还使开发人员能够从各种来源(包括 HTML、图片和原始文本)创建 PDF 文件。

通过本教程,您将学习如何在 C# 应用程序中集成 IronPDFNPGSQL。 我们将研究从简单设置到复杂功能,这些工具如何结合使用以改善您的应用程序的功能。

如何使用 Npgsql

  1. 创建一个新的 C# 项目
  2. 安装 Npgsql 库。
  3. 连接到 Npgsql 数据库。
  4. 执行查询并获取结果。
  5. 处理结果并关闭连接。

1. Npgsql 简介

从根本上讲,Npgsql 是 .NET 开发人员与 PostgreSQL(一个以稳定性、可扩展性和可扩展性著称的开源关系数据库管理系统)之间的联系。 Npgsql 通过提供丰富的功能集,使开发人员能够方便有效地处理事务、执行查询、检索数据以及简化数据库操作。

1.1 使用 Npgsql 的优势

性能: Npgsql 的速度和效率是内置的。 为了保证使用 PostgreSQL 数据库时的最佳速度,Npgsql 利用批处理命令、异步输入/输出和优化数据类型等功能。

完整的 PostgreSQL 支持: Npgsql 的目标是对所有 PostgreSQL 功能(如数组、JSONB、高级数据类型和用户定义类型)提供完整支持。这意味着程序员可以在他们的 .NET 应用程序中充分利用 PostgreSQL 的潜力。

1.2 Npgsql 入门

1.2.1 在C#项目中设置Npgsql

将 Npgsql 集成到 C# 项目中是简单的。 添加 Npgsql 需要使用微软的 .NET 包管理器 NuGet。 该库提供了与您的项目中集成 PostgreSQL 数据库和 Npgsql 所需的工具和库。

Npgsql C# (How It Works For Developers): Figure 1 - Install Npgsql using the Manage NuGet Package for Solution by searching "Npgsql" in the search bar of NuGet Package Manager, then select the project and click on the Install button.

1.2.2 在 Windows 控制台和表单中实现 Npgsql

几种 C# 应用类型,如 Windows 窗体(WinForms)和 Windows 控制台,可以使用 Npgsql。 虽然每个框架的实现有所不同,但基本理念始终如一:Npgsql 是您应用程序中数据库的容器。

1.2.3 从 Npgsql 获取数据的基本示例

在处理 PostgreSQL 数据库之前,请先与 Npgsql 建立连接。 然后运行 SQL 查询从 PostgreSQL 获取数据。 NpgsqlCommand 是一个运行 SQL 查询的工具。

using Npgsql;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // PostgreSQL connection string
        string connString = "Host=myServerAddress;Port=myPort;Username=myUsername;Password=myPassword;Database=myDatabase";

        // Create connection object
        using (var conn = new NpgsqlConnection(connString))
        {
            // Open the connection
            await conn.OpenAsync();

            // SQL query to execute
            string sql = "SELECT * FROM myTable";

            // Create NpgsqlCommand
            using (var cmd = new NpgsqlCommand(sql, conn))
            {
                // Execute the command and retrieve data
                using (var reader = await cmd.ExecuteReaderAsync())
                {
                    // Loop through the retrieved data
                    while (await reader.ReadAsync())
                    {
                        // Retrieve data from the data reader
                        string name = reader["Name"].ToString();
                        int age = Convert.ToInt32(reader["Age"]);
                        // Output retrieved data to console
                        Console.WriteLine($"Name: {name}, Age: {age}");
                    }
                }
            }
            // Connection will be automatically closed here due to the 'using' block
        }
    }
}

在上述代码片段中,我们从 Npgsql 获取数据并将其显示在控制台中。 下面的图像显示了已执行查询的结果。

Npgsql C#(开发者指南):图2 - 控制台输出显示使用Npgsql包在.NET项目中从PostgreSQL数据库获取的名称和年龄。

2. 与 PostgreSQL 的 Npgsql 操作

2.1 与 PostgreSQL 的参数化查询

因为参数化查询使数据库服务器能够缓存查询计划,因此它们可以提高查询性能并有助于防止 SQL 注入攻击。 Npgsql 支持参数化查询。 此外,参数化查询还可以更安全有效地处理动态 SQL 查询。

2.2 与 PostgreSQL 的批量操作

当处理大型数据集时,Npgsql 支持的批量插入、更新和删除操作能够极大地提高速度。 由于批量操作可以在单个数据库事务中处理多行,从而减少了与数据库服务器之间的单独往返。

交易与 PostgreSQL

Npgsql 支持事务,这使得可以将多个数据库操作分组成一个原子单元。 事务通过要么将所有更改提交到数据库,要么在出现错误时回滚整个事务来提供数据的一致性和完整性。

2.3 使用 PostgreSQL 的性能优化

在使用 PostgreSQL 数据库时,Npgsql 提供了许多性能增强功能,包括查询计划缓存、结果流处理和命令批处理,以减少延迟并提高吞吐量。 这些增强功能提高了应用程序的可扩展性和总体速度。

2.4 与 PostgreSQL 数据库的连接

using Npgsql 可以通过以下几行代码轻松连接到 PostgreSQL 数据库服务器。

NpgsqlConnection conn = new NpgsqlConnection(connString);

这个基本的代码片段可以帮助我们连接到 PostgreSQL 数据库服务器。

3. 将 Npgsql 与 IronPDF 集成

3.1 同时使用 Npgsql 和 IronPDF

当 Npgsql 和 IronPDF 在 C# 项目中一起使用时,会带来令人振奋的可能性。 虽然 Npgsql 是处理 PostgreSQL 的一个很好的工具,但 IronPDF 是将这些内容转换为 PDF 的另一个很好的工具。 由于这种连接,程序员可以设计能够与数据库通信并能够将这些内容转换为 PDF 的应用程序。

3.2 使用 IronPDF 获取 PostgreSQL 数据

通过构建一个使用 Npgsql 的 Windows 控制台应用程序,让用户可以在应用程序中与数据库交互。 首先将数据库访问添加到您的应用程序中。为此控件提供足够的控制台空间,并留出大量空间用于数据库交互。 还包括数据类型映射和批量操作。

安装IronPDF

  • 在 Visual Studio 中启动该项目。

  • 选择"工具">"NuGet包管理器">"包管理器控制台"。

    • 在包管理器控制台中输入以下命令并按下 Enter 键:

      PM > Install-Package IronPdf

  • 或者,您也可以通过使用解决方案的 NuGet 包管理器安装 IronPDF。

    • 在搜索结果中找到 IronPDF 包,选择它,然后单击"安装"按钮。 Visual Studio 将自动处理下载和安装。

Npgsql C# (How It Works For Developers): Figure 3 - Install IronPDF using the Manage NuGet Package for Solution by searching "IronPDF" in the search bar of NuGet Package Manager, then select the project and click on the Install button.

  • NuGet 将下载并安装 IronPDF 包以及您的项目所需的任何依赖项。
  • 安装后,您可以开始在项目中使用 IronPDF。

通过NuGet网站安装

有关 IronPDF 的更多信息,包括功能、兼容性和其他下载选项,请访问 NuGet 上的 IronPDF 包 网站。

使用DLL安装

作为替代,您可以使用IronPDF的DLL文件将其直接集成到您的项目中。 使用此 IronPDF ZIP 包 链接下载包含 DLL 的 ZIP 文件。 解压缩后,将 DLL 添加到您的项目中。

实施逻辑

当我们开始运行应用程序时,它将使用 Npgsql .NET 库从数据库中获取数据。 借助 IronPDF,我们可以将数据库内容转换为 PDF 文档。

1.**获取数据:**当用户开始转换时,从 Npgsql .NET 提供程序获取最新内容。 2.**使用 IronPDF 生成 PDF:**要将 Npgsql 数据库中的数据转换为 PDF,请使用 IronPDF。 HtmlToPdf 类可以将 HTML 字符串格式化为 PDF 文档。 3.**保存 PDF 并通知:**将生成的 PDF 保存到指定位置,或在控制台上留下可见消息。 一旦 PDF 保存完成,通知用户(可能通过终端消息)转换成功。

using Npgsql;
using IronPdf;
using System;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // StringBuilder for HTML content
        StringBuilder sb = new StringBuilder();
        var Renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer

        sb.Append("<h1>Dynamic PDF Generated from PostgreSQL Data</h1>");

        // PostgreSQL connection setup
        string connString = "Host=myServerAddress;Port=myPort;Username=myUsername;Password=myPassword;Database=myDatabase";

        using (var conn = new NpgsqlConnection(connString))
        {
            await conn.OpenAsync();

            string sql = "SELECT * FROM myTable";
            using (var cmd = new NpgsqlCommand(sql, conn))
            {
                using (var reader = await cmd.ExecuteReaderAsync())
                {
                    while (await reader.ReadAsync())
                    {
                        // Retrieve data from the data reader
                        string name = reader["Name"].ToString();
                        int age = Convert.ToInt32(reader["Age"]);

                        // Add data to the PDF
                        sb.Append($"<p>Name: {name}, Age: {age}</p>");
                    }
                }
            }

            // Generate and save the PDF document
            var pdf = Renderer.RenderHtmlAsPdf(sb.ToString());
            pdf.SaveAs("output.pdf");

            // Connection will be automatically closed here
        }

        Console.WriteLine("PDF generation completed. See output.pdf for results.");
    }
}

以下是由上述代码生成的结果。 有关 IronPDF 文档 的更多信息,请参阅指南。

Npgsql C#(开发者指南):图4 - 生成的PDF输出,使用来自Npgsql PostgreSQL数据库的数据和IronPDF。

结论

通过 IronPDF 的 PDF 生成功能Npgsql PostgreSQL 数据库连接 的伟大集成,开发人员可以设计灵活且强大的解决方案,用于生成符合其独特需求的动态 PDF 文档。

$999 Lite软件包除永久许可证和一年的软件支持外,还包括升级选项。 IronPDF 提供免费许可选项。 欲了解更多关于 Iron Software 的其他产品,请访问其 产品页面

IronPDF 还提供全面的文档和代码示例用于 PDF 生成和操作,以利用 IronPDF 的各种功能,且这些示例会得到积极维护。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户