.NET 幫助

Npgsql C#(開發人員如何使用)

發佈 2024年4月29日
分享:

Npgsql是一項關鍵技術,能夠實現 .NET 應用程序與 之間的順暢通信PostgreSQL隨著開發者尋求能夠有效操作資料庫的強大方法來使用資料庫。 適用於 PostgreSQL 伺服器的 .NET 資料提供者 Npgsql,是資料庫連接領域中創造力、效能和適應性的象徵。 它允許 C#、Visual Basic 和 F# 用戶訪問數據庫。 舊版的 Entity Framework 6.x 也可供 EF Core 使用者使用。

一個受歡迎的 .NET 庫叫做IronPDF用於 C# 和 VB.NET 程式中生成、修改和顯示 PDF 文件。 除了執行合併多個 PDF 文件、添加浮水印以及從現有 PDF 文件中提取文本或圖像等複雜任務外,它還使開發人員能夠從各種來源(包括 HTML、照片和原始文本)創建 PDF 文件。

您將學習如何整合IronPDFNPGSQL在 C# 應用程式中,按照本教程進行操作。 我們將研究這些工具如何結合使用,從簡單的設定到複雜的功能,以提升您應用程式的功能性。

如何使用 Npgsql

  1. 建立一個新的 C# 專案

  2. 安裝 Npgsql 庫。

  3. 連接到 Npgsql 資料庫。

  4. 執行查詢並取得結果。

  5. 處理結果並關閉連接。

1. Npgsql介紹

從根本上來說,Npgsql作為 .NET 開發人員與 PostgreSQL 之間的連結,PostgreSQL 是一個以穩定性、可擴展性和可延伸性著稱的開源關聯式資料庫管理系統。 Npgsql通過提供廣泛的功能集,使開發人員能夠以無與倫比的便利性和效率處理交易、進行查詢、檢索數據並簡化資料庫操作。

1.1 使用 Npgsql 的優勢

性能:Npgsql 的速度和效率是內建的。 為了確保在使用 PostgreSQL 資料庫時的最佳速度,它利用了例如批處理命令、非同步輸入/輸出和優化的數據類型等功能。

完整的 PostgreSQL 支持: Npgsql 的目標是提供對所有 PostgreSQL 功能的完整支持,例如陣列、JSONB、高級數據類型和用戶自定義類型。這意味著程式開發人員可以在其 .NET 應用程式中充分利用 PostgreSQL 的潛力。

1.2 開始使用 Npgsql

1.2.1 在 C# 專案中設置 Npgsql

將 Npgsql 整合到 C# 專案中非常簡單。 要添加 Npgsql,需要使用微軟的 .NET 包管理工具 NuGet。 此程式庫提供將 PostgreSQL 資料庫與 Npgsql 整合到專案中所需的工具和程式庫。

Npgsql C#(對開發人員的運作方式):圖 1 - 使用 NuGet 套件管理器的解決方案管理 NuGet 套件功能安裝 Npgsql,通過在 NuGet 套件管理器的搜索欄中搜索「Npgsql」,然後選擇專案並單擊安裝按鈕。

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();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

在上述程式碼片段中,我們從 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 資料庫的連接

可以利用Npgsql並透過以下幾行程式碼輕鬆連接PostgreSQL資料庫伺服器。

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

此基本程式碼片段幫助我們連接到 PostgreSQL 資料庫伺服器。

將 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 鍵:
    Install-Package IronPdf
  • 或者,您也可以使用 NuGet 套件管理器來安裝 IronPDF。

    • 在搜索结果中找到 IronPDF 套件,选中它,然后点击“安装”按钮。 Visual Studio 將自動處理下載和安裝。

    Npgsql C#(開發者如何使用):圖 3 - 透過方案的管理 NuGet 套件安裝 IronPDF,在 NuGet 套件管理器的搜尋欄中搜尋「IronPdf」,然後選擇專案並點擊安裝按鈕。

  • 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.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>");
        // Npgsql 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>");
        // Npgsql 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>")
		' Npgsql 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 的 Lite 套裝不僅包含永久授權和一年的軟體支援,還包括升級選項。 IronPDF 提供一個免費授權選項. 若要了解更多關於 Iron Software 其他產品的信息,請探索他們的產品頁面.

IronPDF 也提供綜合文檔並積極維護PDF 生成和操作的程式碼範例利用IronPDF的各種功能。

< 上一頁
棱鏡日誌 (它對開發者的工作原理)
下一個 >
C# 部分 (開發人員如何使用)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >