.NET 帮助

Npgsql C#(开发人员工作原理)

发布 2024年四月29日
分享:

Npgsql 是实现 .NET 应用程序与.NET 应用程序之间顺畅通信的关键技术。 PostgreSQL 随着开发人员不断寻求强大的数据库工作方法,.NET 数据提供程序(.NET Data Provider for PostgreSQL server)也在不断发展。PostgreSQL 服务器的.NET 数据提供程序(或 Npgsql)是数据库连接领域中创造性、有效性和适应性的象征。它允许 c#、Visual Basic 和 F# 用户访问数据库。EF 核心用户还可使用传统的实体框架 6.x。

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

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

如何使用 Npgsql

1.创建一个新的 C# 项目

2.安装 Npgsql 库。

3.连接到 Npgsql 数据库。

4.执行查询并获取结果。

5.处理结果并关闭连接。

1.Npgsql 简介

基础知识 Npgsql NPGSQL是.NET开发人员与PostgreSQL之间的纽带,PostgreSQL是一种开源关系数据库管理系统,以其稳定性、可扩展性和可扩展性而著称。NPGSQL 通过提供广泛的功能集,使开发人员能够处理事务、进行查询、检索数据,并以无与伦比的便利性和效率简化数据库操作。

1.1 使用 Npgsql 的优势

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

全面支持PostgreSQL: Npgsql的目标是全面支持PostgreSQL的所有功能,如数组、JSONB、高级数据类型和用户自定义类型。这意味着程序员可以在其.NET应用程序中充分利用PostgreSQL的全部潜力。

1.2 Npgsql 入门

1.2.1 在 C&num 中设置 Npgsql;项目

在 C# 项目中加入 Npgsql 非常简单。添加 Npgsql 需要使用 Microsoft 的.NET 软件包管理工具 NuGet。添加 Npgsql 需要使用 Microsoft.NET 软件包管理工具 NuGet。该库提供了将 Postgrey 数据库与 Npgsql 集成到项目中所需的工具和库。

Npgsql C# (如何为开发人员服务):图 1 - 在 NuGet Package Manager 的搜索栏中搜索 "Npgsql",使用 Manage NuGet Package for Solution 安装 Npgsql,然后选择项目并点击 Install(安装)按钮。

1.2.2 在 Windows 控制台和窗体中实施 Npgsql

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

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

在使用 PostgreSQL 数据库之前,先创建与 Npgsql 的连接。然后,运行 SQL 查询,从 PostgreSQL 获取数据。NpgsqlCommand 是运行 SQL 查询的工具。

using Npgsql;
using System.Text;
class Program
{
    static void Main(string [] args)
    {
        // PostgreSQL connection string
        string connString = "Host=myServerAddress;Port=myPort;Username=myUsername;Password=myPassword;Database=myDatabase";
        // Create connection object
        NpgsqlConnection conn = new NpgsqlConnection(connString);
        // Open the connection
        conn.Open();
        // SQL query
        string sql = "SELECT * FROM myTable";
        // Create NpgsqlCommand
        NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
        // Execute the command and retrieve data
        NpgsqlDataReader reader = cmd.ExecuteReader();
        // 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"]);
            // Add data to the PDF
            console.writeline($"Name: {name}, Age: {age}");
        }
        // Close the connection when done
        conn.Close();
    }
}
using Npgsql;
using System.Text;
class Program
{
    static void Main(string [] args)
    {
        // PostgreSQL connection string
        string connString = "Host=myServerAddress;Port=myPort;Username=myUsername;Password=myPassword;Database=myDatabase";
        // Create connection object
        NpgsqlConnection conn = new NpgsqlConnection(connString);
        // Open the connection
        conn.Open();
        // SQL query
        string sql = "SELECT * FROM myTable";
        // Create NpgsqlCommand
        NpgsqlCommand cmd = new NpgsqlCommand(sql, conn);
        // Execute the command and retrieve data
        NpgsqlDataReader reader = cmd.ExecuteReader();
        // 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"]);
            // Add data to the PDF
            console.writeline($"Name: {name}, Age: {age}");
        }
        // Close the connection when done
        conn.Close();
    }
}
Imports Npgsql
Imports System.Text
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' PostgreSQL connection string
		Dim connString As String = "Host=myServerAddress;Port=myPort;Username=myUsername;Password=myPassword;Database=myDatabase"
		' Create connection object
		Dim conn As New NpgsqlConnection(connString)
		' Open the connection
		conn.Open()
		' SQL query
		Dim sql As String = "SELECT * FROM myTable"
		' Create NpgsqlCommand
		Dim cmd As New NpgsqlCommand(sql, conn)
		' Execute the command and retrieve data
		Dim reader As NpgsqlDataReader = cmd.ExecuteReader()
		' Loop through the retrieved data
		Do While Await reader.ReadAsync()
			' Retrieve data from the data reader
			Dim name As String = reader ("Name").ToString()
			Dim age As Integer = Convert.ToInt32(reader ("Age"))
			' Add data to the PDF
			console.writeline($"Name: {name}, Age: {age}")
		Loop
		' Close the connection when done
		conn.Close()
	End Sub
End Class
VB   C#

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

Npgsql C#(如何为开发人员工作):图 2 - 在 .NET 项目中使用 Npgsql 软件包从 PostgreSQL 数据库显示姓名和年龄的控制台输出

2.使用 PostgreSQL 进行 Npgsql 操作

2.1 使用 PostgreSQL 的参数化查询

参数化查询可以让数据库服务器缓存查询计划,从而提高查询性能,并有助于防止 SQL 注入攻击。Npgsql 支持参数化查询。此外,有了参数化查询,以安全有效的方式处理动态 SQL 查询就变得更容易了。

2.2 PostgreSQL 的批量操作

在处理庞大的数据集时,Npgsql 支持的批量插入、更新和删除操作可以大大提高速度。由于有了批量操作,在一个数据库事务中处理多条记录时,单独往返数据库服务器的开销就会减少。

使用 PostgreSQL 进行事务处理

Npgsql 支持事务,可将多个数据库操作组合成一个原子单元。事务可将所有更改提交到数据库,或在出现错误时回滚整个事务,从而保证数据的一致性和完整性。

2.3 利用 PostgreSQL 优化性能

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

2.4 与 PostgreSQL 数据库连接

在 Npgsql 的帮助下,只需下面几行代码就能轻松连接 PostgreSQL 数据库服务器。

NpgsqlConnection conn = new NpgsqlConnection(connString);
NpgsqlConnection conn = new NpgsqlConnection(connString);
Dim conn As New NpgsqlConnection(connString)
VB   C#

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

3.将 Npgsql 与 IronPDF 集成

3.1 同时使用 Npgsql 和 IronPDF

在 C# 项目中同时使用 Npgsql 和 IronPDF 时,会出现令人兴奋的可能性。虽然 Npgsql 是一个与 Postgresql 协同工作的伟大工具,但 IronPDF 则是一个将这些内容转化为 PDF 的伟大工具。得益于这种连接性,程序员可以设计能与数据库通信并能将这些内容转化为 PDF 的应用程序。

3.2 使用 IronPDF 获取 Postgresql 数据

通过创建一个使用 Npgsql 的 Windows 控制台应用程序,用户可以在应用程序中与数据库交互。首先在应用程序中添加数据库访问。控制台上应该有足够的空间来放置该控件,并为数据库交互留出足够的空间。还要包括数据类型映射和批量操作。

安装 IronPDF

  • 在 Visual Studio 中启动项目。
  • 选择 "工具">"NuGet 包管理器">"包管理器控制台"。

    • 在软件包管理器控制台中输入以下命令并点击 Enter:
Install-Package IronPdf
  • 此外,您还可以使用 NuGet Package Manager for Solutions 安装 IronPDF。

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

Npgsql C# (如何为开发人员服务):图 3 - 在 NuGet Package Manager 的搜索栏中搜索 "IronPdf",使用 Manage NuGet Package for Solution 安装 IronPDF,然后选择项目并点击 Install(安装)按钮。

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

通过 NuGet 网站安装

有关 IronPDF 的更多信息,包括功能、兼容性和其他下载选择,请访问 NuGet 网站 https://www.nuget.org/packages/IronPdf 上的 IronPDF 页面。

利用 DLL 进行安装

作为替代方案,您可以使用 IronPDF 的 dll 文件将其直接集成到您的项目中。请使用 链接 下载包含 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.Text;
class Program
{
    static void Main(string [] args)
    {
        StringBuilder sb = new StringBuilder();
        var Renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer
        sb.Append("<h1>Dynamic PDF Generated from PostgreSQL Data</h1>");
    //ngsql code here
        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>");
        }
        var pdf = Renderer.RenderHtmlAsPdf(sb.ToString());
        // Save the PDF document
        pdf.SaveAs("output.pdf");
        // Close the connection when done
        conn.Close();
    }
}
using Npgsql;
using IronPdf;
using System.Text;
class Program
{
    static void Main(string [] args)
    {
        StringBuilder sb = new StringBuilder();
        var Renderer = new ChromePdfRenderer(); // Instantiates Chrome Renderer
        sb.Append("<h1>Dynamic PDF Generated from PostgreSQL Data</h1>");
    //ngsql code here
        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>");
        }
        var pdf = Renderer.RenderHtmlAsPdf(sb.ToString());
        // Save the PDF document
        pdf.SaveAs("output.pdf");
        // Close the connection when done
        conn.Close();
    }
}
Imports Npgsql
Imports IronPdf
Imports System.Text
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim sb As New StringBuilder()
		Dim Renderer = New ChromePdfRenderer() ' Instantiates Chrome Renderer
		sb.Append("<h1>Dynamic PDF Generated from PostgreSQL Data</h1>")
	'ngsql code here
		Do While Await reader.ReadAsync()
			' Retrieve data from the data reader
			Dim name As String = reader ("Name").ToString()
			Dim age As Integer = Convert.ToInt32(reader ("Age"))
			' Add data to the PDF
			sb.Append($"<p>Name: {name}, Age: {age}</p>")
		Loop
		Dim pdf = Renderer.RenderHtmlAsPdf(sb.ToString())
		' Save the PDF document
		pdf.SaveAs("output.pdf")
		' Close the connection when done
		conn.Close()
	End Sub
End Class
VB   C#

以下是上述代码生成的结果。要了解有关 IronPDF 文档的更多信息,请参阅 这里.

Npgsql C#(如何为开发人员工作):图 4 - 使用 Npgsql PostgreSQL 数据库和 IronPDF 生成的 PDF 输出。

结论

通过对 IronPDF的 PDF 生成功能和 NPGSQL 利用 PostgreSQL 数据库的连接性,开发人员可以设计出适应性强、功能强大的解决方案,以制作满足其独特需求的动态 PDF 文档。

749 美元的精简版捆绑包除了永久许可证和一年的软件支持外,还包括升级选择。IronPDF 提供 免费许可.要了解有关 Iron Software 其他产品的更多信息,请点击此处。 链接.

IronPDF 还提供完整的文档 向导 并积极维护 代码示例 了解如何利用 IronPDF 的各种功能来生成和编辑 PDF。

< 前一页
棱镜日志记录(开发者如何使用)
下一步 >
C# 部分类(对开发者的作用)

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >