.NET 幫助

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

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 文件。

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

如何使用 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 套件管理器搜尋欄中輸入“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
$vbLabelText   $csharpLabel

在上述程式碼片段中,我們從 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)
$vbLabelText   $csharpLabel

此基本程式碼片段幫助我們連接到 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
    Install-Package IronPdf
SHELL
  • 或者,您也可以使用 NuGet 套件管理器來安裝 IronPDF。

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

    Npgsql C#(適用於開發人員的工作方式):圖 3 - 使用 NuGet 套件管理員的方案管理 NuGet 套件,通過在搜索欄中搜索 IronPdf 來安裝 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
$vbLabelText   $csharpLabel

以下是從上述程式碼生成的結果。 如需了解更多有關IronPDF 文件的信息,請參考指南。

Npgsql C#(它如何為開發人員工作):圖4 - 使用Npgsql PostgreSQL資料庫和IronPDF生成的輸出 PDF。

結論

通過IronPDF 的 PDF 生成功能Npgsql PostgreSQL 資料庫連接的完美整合,開發人員可以設計出適應性強且穩健的解決方案,生成符合其獨特需求的動態 PDF 文件。

$749 Lite 套裝除了永久授權和一年技術支持外,還包括升級選項。 IronPDF 提供免費授權選項。 要了解有關 Iron Software 其他產品的更多信息,請瀏覽他們的產品頁面

IronPDF還提供全面的文件資料,並且積極維護用於PDF生成和操作的程式碼範例,以便使用IronPDF的各種功能。

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
棱鏡日誌 (它對開發者的工作原理)
下一個 >
C# 部分 (開發人員如何使用)