IRONSOFTWAREHOME
开发者更新

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

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

欢迎来到为有兴趣将 C# 应用程序与PostgreSQL集成的新手设计的本教程。 PostgreSQL 是全球使用最广泛的关系数据库之一,以其可靠性和与包括 C# 在内的大量编程环境的兼容性而闻名。 本指南将带您了解如何将 C# 应用程序连接到 PostgreSQL 数据库、执行 SQL 语句查询以及处理数据的基础知识。 我们将使用 Visual Studio、NuGet 包管理器和 Npgsql 数据提供程序等工具来创建与 PostgreSQL 服务器通信的简单项目。 我们还将了解集成 PostgreSQL 时的 IronPDF 库。

设置您的环境

在深入编码之前,请确保您在计算机上安装了 Visual Studio。 Visual Studio 是一个流行的集成开发环境 (IDE),支持 C# 以及其他编程语言。 对于数据库管理,请在本地机器上安装 PostgreSQL,或在 Azure Database 等云环境中设置 PostgreSQL 数据库。

在设置 Visual Studio 和 PostgreSQL 服务器后,创建一个新的 C# 项目。 您可以通过打开 Visual Studio,进入文件菜单,选择新建,然后选择项目来进行此操作。 选择控制台应用程序 (.NET Core) 作为项目类型,以保持简单。

Integrating PostgreSQL with C#

要将 C# 应用程序连接到 PostgreSQL 数据库,您需要 Npgsql 数据提供程序。 Npgsql 充当 C# 应用程序与 PostgreSQL 数据库之间的桥梁,使您的代码能够执行 SQL 命令并管理数据。

安装 Npgsql

在 Visual Studio 中打开您新创建的项目。 右键单击解决方案资源管理器中的项目,选择"管理 NuGet 包",然后搜索 Npgsql 包。 通过点击包名称旁边的安装按钮来安装它。 此操作将在项目中添加 Npgsql 数据提供程序,使您的应用程序能够与 PostgreSQL 通信。 您也可以使用包管理器控制台进行安装。

C# PostgreSQL(为开发者量身定制的工作方式):图1 - Npgsql

配置数据库连接

从 C# 与 PostgreSQL 数据库交互的第一步是建立连接。 这需要一个连接字符串,包括服务器名称、端口、用户名和密码等详细信息。 这是 PostgreSQL 连接字符串的基本模板:

string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=yourpassword; Database=mydatabase";

用您的 PostgreSQL 服务器的详细信息替换 localhost、yourpassword 和 mydatabase。

定义 Employee 模型

我们定义一个 Employee 实体模型,它将表示我们在 PostgreSQL 数据库中的数据。 此模型包含与数据库表中的列相对应的属性。

public class Employee
{
    public int Id { get; set; } // Automatically becomes the primary key
    public string LastName { get; set; }
}

此代码片段定义了一个简单的 Employee 类,具有两个属性:Id 和 LastName。 Entity Framework Core 使用约定来推断 Id 序列主键属性应作为主键。

配置应用程序的 DbContext

AppDbContext 类扩展了 Entity Framework Core 中的 DbContext,充当您的 C# 应用程序与 PostgreSQL 数据库之间的桥梁。 它包括连接字符串及表示数据库中表的 DbSet 属性等配置信息。

public class AppDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; } // Represents the Employees table
    
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string connectionString = "Host=localhost; Port=5432; Username=postgres; Password=your_password; Database=your_database";
        optionsBuilder.UseNpgsql(connectionString);
    }
    
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Employee>().ToTable("Employees");
    }
}
  • DbSet 属性:****公共数据库集<Employee>员工 { 获取; set; } 声明一组 Employee 实体,这些实体映射到 PostgreSQL 数据库中的员工表。

  • OnConfiguring 方法:此方法使用必要的数据库连接字符串配置DbContext 。 在此示例中,我们显式指定表名,尽管如果表名与 DbSet 属性名称匹配则为可选。

  • **OnModelCreating 方法:**您可以在此处使用 Fluent API 进一步配置实体行为。 在这个示例中,尽管表名与 DbSet 属性名匹配是可选的,但我们明确指定了表名。

主程序逻辑

在 Program 类的 Main 方法中,我们确保数据库被创建,如果为空则用初始数据填充,然后执行查询以检索和显示员工数据。

class Program
{
    static void Main(string[] args)
    {
        using (var context = new AppDbContext())
        {
            context.Database.EnsureCreated();  // Ensure the database and schema are created
            if (!context.Employees.Any())  // Check if the Employees table is empty
            {
                context.Employees.Add(new Employee { LastName = "Software" });
                context.SaveChanges();  // Save changes to the database
            }
            var employees = context.Employees.Where(e => e.LastName == "Software").ToList();
            foreach (var employee in employees)
            {
                Console.WriteLine($"Employee ID: {employee.Id}, Last Name: {employee.LastName}");
            }
        }
    }
}

上述代码检查数据库是否存在,如果不存在则创建它及其模式。 程序查询 Employees 表中姓氏为"Software"的条目并将其详细信息输出到控制台。 此SQL语句检查Employees表是否为空,如果为空,程序将添加一个姓氏为"Software"的新Employee,并将更改保存到数据库。 该程序查询 Employees 表中姓氏为 "Software" 的条目,并将其详细信息打印到控制台。

输出

这是运行程序时控制台的输出:

C# PostgreSQL(为开发者量身定制的工作方式):图2 - 输出

而它是 PgAdmin 中的表数据:

C# PostgreSQL(为开发者量身定制的工作方式):图3 - 表输出

IronPDF简介

探索 IronPDF 库的能力 以了解这个全面的 C# 库如何使开发者能够在 .NET 应用程序中创建、编辑和操作 PDF 文档。 这个强大的工具简化了 从 HTML 生成 PDF、URL 和图像。 IronPDF 提供将HTML 无缝转换为 PDF的功能,同时保持布局和样式不变。 此功能是从基于网络的内容(如报告、发票和文档)生成 PDF 的理想选择。

IronPDF 提供将 HTML 转换为 PDF 的能力,同时保持布局和样式不变。 这可能包括从 PostgreSQL 数据库中持久化的数据直接生成发票、报告、客户报表等。 它将 HTML 文件、URL 和 HTML 字符串转换为 PDF 文件。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
        
        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
       
        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

在使用 IronPDF 之前,您必须将其添加到项目中。 这可以通过 NuGet 包管理器轻松完成:

安装 IronPDF

在使用 IronPDF 之前,您必须将其添加到您的项目中。 这可以通过 NuGet 包管理器轻松完成:

PM > Install-Package IronPdf

从 PostgreSQL 数据生成 PDF

在这个例子中,讓我們生成一個简单的 PDF 报告,列出我们 PostgreSQL 数据库中的员工。 我们假设您已按照前面的章节设置了 AppDbContext 和 Employee 模型。

首先,确保在您的项目中安装了 IronPDF 库。 接下来,您可以使用以下代码从 PostgreSQL 数据库中获取数据并生成 PDF 报告:

class Program
{
    static void Main(string[] args)
    {
        IronPdf.License.LicenseKey = "Key";
        // Initialize the database context
        using (var context = new AppDbContext())
        {
            // Fetch employees from the database
            var employees = context.Employees.ToList();
            // Generate HTML content for the PDF
            var htmlContent = "<h1>Employee Report</h1>";
            htmlContent += "<table><tr><th>ID</th><th>Last Name</th></tr>";
            foreach (var employee in employees)
            {
                htmlContent += $"<tr><td>{employee.Id}</td><td>{employee.LastName}</td></tr>";
            }
            htmlContent += "</table>";
            // Instantiate the IronPDF HtmlToPdf converter
            var renderer = new ChromePdfRenderer();
            // Generate the PDF document from the HTML content
            var pdf = renderer.RenderHtmlAsPdf(htmlContent);
            // Save the generated PDF to a file
            var outputPath = "f:\\EmployeeReport.pdf";
            pdf.SaveAs(outputPath);
            Console.WriteLine($"PDF report generated: {outputPath}");
        }
    }
}

输出

当您运行代码时,此控制台输出将显示:

C# PostgreSQL(为开发者量身定制的工作方式):图4 - 控制台输出

生成的 PDF 如下:

C# PostgreSQL(为开发者量身定制的工作方式):图5 - PDF输出

结论

您刚刚迈出了进入 C# 和 PostgreSQL 数据库管理世界的重要第一步。 按照本教程中的说明,您已学习如何在 Visual Studio 中设置项目,安装必要的包,并执行基本的数据库操作。 随着您对这些概念的熟悉,您将发现将 C# 与最重要的关系数据库系统之一结合的强大和灵活性。 此试用特别有助于评估 IronPDF 在生成、编辑和转换 .NET 应用程序中的 PDF 文档方面的功能是否符合您的项目需求。

IronPDF 提供 IronPDF 功能的免费试用,允许开发人员在没有任何初始投资的情况下探索其功能和能力。 IronPDF 的许可从 $999 开始,提供适合不同开发需求的一系列功能和支持选项。 试用期结束后或生产使用时,必须获得许可证。 IronPDF的授权起价为$999,提供适合不同开发需求的多样功能和支持选项。

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

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

相关文章

Key in blue circle

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

Your trial license will be sent to your email address

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

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

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

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

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起