在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
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 文件。
您将学习如何集成 IronPDF 和 NPGSQL 在 C# 应用程序中使用。我们将研究如何结合这些工具来改进应用程序的功能,从简单的设置到复杂的功能。
1.创建一个新的 C# 项目
2.安装 Npgsql 库。
3.连接到 Npgsql 数据库。
4.执行查询并获取结果。
5.处理结果并关闭连接。
基础知识 Npgsql NPGSQL是.NET开发人员与PostgreSQL之间的纽带,PostgreSQL是一种开源关系数据库管理系统,以其稳定性、可扩展性和可扩展性而著称。NPGSQL 通过提供广泛的功能集,使开发人员能够处理事务、进行查询、检索数据,并以无与伦比的便利性和效率简化数据库操作。
性能:Npgsql 内置速度和效率。为了保证在使用 PostgreSQL 数据库时达到最佳速度,它使用了批处理命令、异步输入/输出和优化数据类型等功能。
全面支持PostgreSQL: Npgsql的目标是全面支持PostgreSQL的所有功能,如数组、JSONB、高级数据类型和用户自定义类型。这意味着程序员可以在其.NET应用程序中充分利用PostgreSQL的全部潜力。
在 C# 项目中加入 Npgsql 非常简单。添加 Npgsql 需要使用 Microsoft 的.NET 软件包管理工具 NuGet。添加 Npgsql 需要使用 Microsoft.NET 软件包管理工具 NuGet。该库提供了将 Postgrey 数据库与 Npgsql 集成到项目中所需的工具和库。
有几种 C# 应用程序类型,如 Windows Forms (WinForms) 和 Windows 控制台都可以使用 Npgsql。虽然每个框架的实现方式各不相同,但基本理念始终如一: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
在上述代码片段中,我们从 Npgsql 获取数据并将其显示在控制台中。下图显示了执行查询的结果。
参数化查询可以让数据库服务器缓存查询计划,从而提高查询性能,并有助于防止 SQL 注入攻击。Npgsql 支持参数化查询。此外,有了参数化查询,以安全有效的方式处理动态 SQL 查询就变得更容易了。
在处理庞大的数据集时,Npgsql 支持的批量插入、更新和删除操作可以大大提高速度。由于有了批量操作,在一个数据库事务中处理多条记录时,单独往返数据库服务器的开销就会减少。
Npgsql 支持事务,可将多个数据库操作组合成一个原子单元。事务可将所有更改提交到数据库,或在出现错误时回滚整个事务,从而保证数据的一致性和完整性。
2.3 利用 PostgreSQL 优化性能
在使用 PostgreSQL 数据库时,Npgsql 提供了一系列性能增强功能,包括查询计划缓存、结果流和批处理命令,以减少延迟并提高吞吐量。这些增强功能提高了应用程序的可扩展性和总体速度。
在 Npgsql 的帮助下,只需下面几行代码就能轻松连接 PostgreSQL 数据库服务器。
NpgsqlConnection conn = new NpgsqlConnection(connString);
NpgsqlConnection conn = new NpgsqlConnection(connString);
Dim conn As New NpgsqlConnection(connString)
这段基本代码可以帮助我们连接 PostgreSQL 数据库服务器。
在 C# 项目中同时使用 Npgsql 和 IronPDF 时,会出现令人兴奋的可能性。虽然 Npgsql 是一个与 Postgresql 协同工作的伟大工具,但 IronPDF 则是一个将这些内容转化为 PDF 的伟大工具。得益于这种连接性,程序员可以设计能与数据库通信并能将这些内容转化为 PDF 的应用程序。
通过创建一个使用 Npgsql 的 Windows 控制台应用程序,用户可以在应用程序中与数据库交互。首先在应用程序中添加数据库访问。控制台上应该有足够的空间来放置该控件,并为数据库交互留出足够的空间。还要包括数据类型映射和批量操作。
选择 "工具">"NuGet 包管理器">"包管理器控制台"。
Install-Package IronPdf
此外,您还可以使用 NuGet Package Manager for Solutions 安装 IronPDF。
有关 IronPDF 的更多信息,包括功能、兼容性和其他下载选择,请访问 NuGet 网站 https://www.nuget.org/packages/IronPdf 上的 IronPDF 页面。
作为替代方案,您可以使用 IronPDF 的 dll 文件将其直接集成到您的项目中。请使用 链接 下载包含 DLL 的 ZIP 文件。解压缩后,将 DLL 添加到项目中。
当我们开始运行应用程序时。它将使用 Npgsql .NET 库从数据库中获取数据。在 IronPDF 的帮助下,我们可以将数据库内容转换为 PDF 文档。
获取数据:当用户开始转换时,从 Npgsql .NET 提供程序中获取最新内容。
使用 IronPDF 生成 PDF:要将 Npgsql 数据库中的数据转换成 PDF,请使用 IronPDF。可以使用 HtmlToPdf 类将 HTML 字符串格式化为 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
以下是上述代码生成的结果。要了解有关 IronPDF 文档的更多信息,请参阅 这里.
通过对 IronPDF的 PDF 生成功能和 NPGSQL 利用 PostgreSQL 数据库的连接性,开发人员可以设计出适应性强、功能强大的解决方案,以制作满足其独特需求的动态 PDF 文档。
749 美元的精简版捆绑包除了永久许可证和一年的软件支持外,还包括升级选择。IronPDF 提供 免费许可.要了解有关 Iron Software 其他产品的更多信息,请点击此处。 链接.
IronPDF 还提供完整的文档 向导 并积极维护 代码示例 了解如何利用 IronPDF 的各种功能来生成和编辑 PDF。