.NET幫助 DuckDB C#(對開發者如何理解的工作) Jacob Mellor 更新:7月 28, 2025 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 DuckDB.NET是 DuckDB 原生函式庫 .NET 綁定的開放源碼提供者,旨在與 C# 無縫整合。 它提供了一個 ADO.NET 提供者,讓您可以輕鬆地在 .NET 應用程式中使用 DuckDB 這個低階綁定庫。 本套件非常適合希望在 C# 環境中利用 DuckDB 強大分析能力的開發人員。 安裝 安裝 DuckDB.NET 簡單直接。 您可以使用 .NET CLI 將其加入您的專案: dotnet add package DuckDB.NET.Data.Full dotnet add package DuckDB.NET.Data.Full SHELL 另外,您也可以透過 Visual Studio 中的 NuGet Package Manager 進行安裝。 基本用法 安裝完成後,您就可以開始使用 DuckDB.NET 在您的 C# 應用程式中執行 SQL 查詢。 下面是一個簡單的例子: using System; using DuckDB.NET.Data; class Program { static void Main() { // Create and open a connection to an in-memory DuckDB database using var duckdbconnection = new DuckDBConnection("Data Source=:memory:"); duckdbconnection.Open(); // Create a command associated with the connection using var command = duckdbconnection.CreateCommand(); // Create a table named 'integers' command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);"; command.ExecuteNonQuery(); // Insert some data into the 'integers' table command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);"; command.ExecuteNonQuery(); // Retrieve the count of rows in the 'integers' table command.CommandText = "SELECT count(*) FROM integers"; var executeScalar = command.ExecuteScalar(); // Select all values from the 'integers' table command.CommandText = "SELECT foo, bar FROM integers;"; // Execute the query and process the results using var reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine($"{reader.GetInt32(0)}, {reader.GetInt32(1)}"); } } } using System; using DuckDB.NET.Data; class Program { static void Main() { // Create and open a connection to an in-memory DuckDB database using var duckdbconnection = new DuckDBConnection("Data Source=:memory:"); duckdbconnection.Open(); // Create a command associated with the connection using var command = duckdbconnection.CreateCommand(); // Create a table named 'integers' command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);"; command.ExecuteNonQuery(); // Insert some data into the 'integers' table command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);"; command.ExecuteNonQuery(); // Retrieve the count of rows in the 'integers' table command.CommandText = "SELECT count(*) FROM integers"; var executeScalar = command.ExecuteScalar(); // Select all values from the 'integers' table command.CommandText = "SELECT foo, bar FROM integers;"; // Execute the query and process the results using var reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine($"{reader.GetInt32(0)}, {reader.GetInt32(1)}"); } } } Imports System Imports DuckDB.NET.Data Friend Class Program Shared Sub Main() ' Create and open a connection to an in-memory DuckDB database Dim duckdbconnection As New DuckDBConnection("Data Source=:memory:") duckdbconnection.Open() ' Create a command associated with the connection Dim command = duckdbconnection.CreateCommand() ' Create a table named 'integers' command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);" command.ExecuteNonQuery() ' Insert some data into the 'integers' table command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);" command.ExecuteNonQuery() ' Retrieve the count of rows in the 'integers' table command.CommandText = "SELECT count(*) FROM integers" Dim executeScalar = command.ExecuteScalar() ' Select all values from the 'integers' table command.CommandText = "SELECT foo, bar FROM integers;" ' Execute the query and process the results Dim reader = command.ExecuteReader() Do While reader.Read() Console.WriteLine($"{reader.GetInt32(0)}, {reader.GetInt32(1)}") Loop End Sub End Class $vbLabelText $csharpLabel 本範例示範如何使用 DuckDB.NET 建立資料表、插入資料和查詢資料。 輸出 Data Ingestion DuckDB.NET 支援從各種格式讀取資料,包括 CSV 和 Parquet 檔案。 以下是如何從 CSV 檔案讀取資料: command.CommandText = "COPY integers FROM 'example.csv' (FORMAT CSV);"; command.ExecuteNonQuery(); command.CommandText = "COPY integers FROM 'example.csv' (FORMAT CSV);"; command.ExecuteNonQuery(); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 與 DataFrames 整合。 DuckDB.NET 也可以與資料框架整合,讓您使用熟悉的 SQL 語法來操作資料。 這對資料分析工作特別有用。 結果轉換 您可以將查詢結果轉換成各種格式,例如清單或自訂物件,讓您可以輕鬆地在應用程式中處理資料: var results = new List<(int foo, int bar)>(); // Read and store results to a List while (reader.Read()) { results.Add((reader.GetInt32(0), reader.GetInt32(1))); // You can also use a loop with an index to iterate the results } var results = new List<(int foo, int bar)>(); // Read and store results to a List while (reader.Read()) { results.Add((reader.GetInt32(0), reader.GetInt32(1))); // You can also use a loop with an index to iterate the results } Dim results = New List(Of (foo As Integer, bar As Integer))() ' Read and store results to a List Do While reader.Read() results.Add((reader.GetInt32(0), reader.GetInt32(1))) ' You can also use a loop with an index to iterate the results Loop $vbLabelText $csharpLabel 將資料寫入磁碟 DuckDB.NET 支援以各種格式將資料寫入磁碟。 您可以使用 COPY 語句將資料匯出至 CSV 檔案: command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);"; command.ExecuteNonQuery(); command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);"; command.ExecuteNonQuery(); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel IronPDF 簡介 IronPDF 是一個 C# PDF 函式庫,允許在 .NET 專案中產生、管理和擷取 PDF 文件中的內容。 以下是一些主要特點: IronPDF 是一款方便的工具,可讓您將網頁、URL 和 HTML 轉換成 PDF。 最棒的是什麼? PDF 的外觀必須與原始網頁完全相同 - 保留所有格式與樣式。 因此,如果您需要將線上的東西製作成 PDF,例如報告或發票,IronPDF 就是您的最佳選擇。 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"); } } 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"); } } Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' 1. Convert HTML String to PDF Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>" Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent) pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf") ' 2. Convert HTML File to PDF Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath) pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf") ' 3. Convert URL to PDF Dim url = "http://ironpdf.com" ' Specify the URL Dim pdfFromUrl = renderer.RenderUrlAsPdf(url) pdfFromUrl.SaveAs("URLToPDF.pdf") End Sub End Class $vbLabelText $csharpLabel 1.HTML 至 PDF 轉換: 將 HTML、CSS 及 JavaScript 內容轉換為 PDF。 Chrome Rendering Engine 可提供像素完美的 PDF 文件。 從 URL、HTML 檔案或 HTML 字串產生 PDF。 2.圖片與內容轉換: 將圖片轉換為 PDF 文件或從 PDF 文件轉換為圖片。 從現有的 PDF 文件中萃取文字和圖片。 支援 JPG、PNG 等多種圖片格式。 3.編輯與操作: 為 PDF 文件設定屬性、安全性和權限。 在 PDF 中加入數位簽名。 編輯元資料和修訂歷史。 4.跨平台支援: 適用於 .NET Core (8、7、6、5 及 3.1+)、.NET Standard (2.0+) 及 .NET Framework (4.6.2+)。 相容於 Windows、Linux 和 macOS。 可在 NuGet 上取得,方便安裝。 使用 IronPDF 和 DuckDB .NET 生成 PDF 文件。 首先,使用 Visual Studio 建立一個 Console 應用程式,如下所示。 提供專案名稱。 提供 .NET 版本。 安裝 IronPdf 套件。 安裝 DuckDB.NET 套件。 using DuckDB.NET.Data; using IronPdf; namespace CodeSample { public static class DuckDbDemo { public static void Execute() { // Instantiate Renderer var renderer = new ChromePdfRenderer(); var content = "<h1>Demo DuckDb and IronPDF</h1>"; content += "<h2>Create DuckDBConnection</h2>"; content += "<p>new DuckDBConnection(\"Data Source=:memory:\");</p>"; content += "<p></p>"; // Create and open a connection to an in-memory DuckDB database using var connection = new DuckDBConnection("Data Source=:memory:"); connection.Open(); using var command = connection.CreateCommand(); // Create a table named 'integers' command.CommandText = "CREATE TABLE integers(book STRING, cost INTEGER);"; command.ExecuteNonQuery(); content += "<p>CREATE TABLE integers(book STRING, cost INTEGER);</p>"; // Insert some data into the 'integers' table command.CommandText = "INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);"; command.ExecuteNonQuery(); content += "<p>INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);</p>"; // Select all values from the 'integers' table command.CommandText = "SELECT book, cost FROM integers;"; using var reader = command.ExecuteReader(); content += "<p>SELECT book, cost FROM integers;</p>"; // Execute the query and process the results, appending them to the HTML content while (reader.Read()) { content += $"<p>{reader.GetString(0)}, {reader.GetInt32(1)}</p>"; Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)}"); } // Save data to CSV content += "<p>Save data to CSV with COPY integers TO 'output.csv' (FORMAT CSV);</p>"; command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);"; command.ExecuteNonQuery(); // Generate and save PDF var pdf = renderer.RenderHtmlAsPdf(content); pdf.SaveAs("AwesomeDuckDbNet.pdf"); } } } using DuckDB.NET.Data; using IronPdf; namespace CodeSample { public static class DuckDbDemo { public static void Execute() { // Instantiate Renderer var renderer = new ChromePdfRenderer(); var content = "<h1>Demo DuckDb and IronPDF</h1>"; content += "<h2>Create DuckDBConnection</h2>"; content += "<p>new DuckDBConnection(\"Data Source=:memory:\");</p>"; content += "<p></p>"; // Create and open a connection to an in-memory DuckDB database using var connection = new DuckDBConnection("Data Source=:memory:"); connection.Open(); using var command = connection.CreateCommand(); // Create a table named 'integers' command.CommandText = "CREATE TABLE integers(book STRING, cost INTEGER);"; command.ExecuteNonQuery(); content += "<p>CREATE TABLE integers(book STRING, cost INTEGER);</p>"; // Insert some data into the 'integers' table command.CommandText = "INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);"; command.ExecuteNonQuery(); content += "<p>INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);</p>"; // Select all values from the 'integers' table command.CommandText = "SELECT book, cost FROM integers;"; using var reader = command.ExecuteReader(); content += "<p>SELECT book, cost FROM integers;</p>"; // Execute the query and process the results, appending them to the HTML content while (reader.Read()) { content += $"<p>{reader.GetString(0)}, {reader.GetInt32(1)}</p>"; Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)}"); } // Save data to CSV content += "<p>Save data to CSV with COPY integers TO 'output.csv' (FORMAT CSV);</p>"; command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);"; command.ExecuteNonQuery(); // Generate and save PDF var pdf = renderer.RenderHtmlAsPdf(content); pdf.SaveAs("AwesomeDuckDbNet.pdf"); } } } Imports DuckDB.NET.Data Imports IronPdf Namespace CodeSample Public Module DuckDbDemo Public Sub Execute() ' Instantiate Renderer Dim renderer = New ChromePdfRenderer() Dim content = "<h1>Demo DuckDb and IronPDF</h1>" content &= "<h2>Create DuckDBConnection</h2>" content &= "<p>new DuckDBConnection(""Data Source=:memory:"");</p>" content &= "<p></p>" ' Create and open a connection to an in-memory DuckDB database Dim connection = New DuckDBConnection("Data Source=:memory:") connection.Open() Dim command = connection.CreateCommand() ' Create a table named 'integers' command.CommandText = "CREATE TABLE integers(book STRING, cost INTEGER);" command.ExecuteNonQuery() content &= "<p>CREATE TABLE integers(book STRING, cost INTEGER);</p>" ' Insert some data into the 'integers' table command.CommandText = "INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);" command.ExecuteNonQuery() content &= "<p>INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);</p>" ' Select all values from the 'integers' table command.CommandText = "SELECT book, cost FROM integers;" Dim reader = command.ExecuteReader() content &= "<p>SELECT book, cost FROM integers;</p>" ' Execute the query and process the results, appending them to the HTML content Do While reader.Read() content &= $"<p>{reader.GetString(0)}, {reader.GetInt32(1)}</p>" Console.WriteLine($"{reader.GetString(0)}, {reader.GetInt32(1)}") Loop ' Save data to CSV content &= "<p>Save data to CSV with COPY integers TO 'output.csv' (FORMAT CSV);</p>" command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);" command.ExecuteNonQuery() ' Generate and save PDF Dim pdf = renderer.RenderHtmlAsPdf(content) pdf.SaveAs("AwesomeDuckDbNet.pdf") End Sub End Module End Namespace $vbLabelText $csharpLabel 程式碼解釋 該代碼旨在展示如何使用 DuckDB.NET 進行資料庫操作,以及如何使用 IronPDF 生成包含資料庫查詢結果的 PDF 報告。 主要元件 1.DuckDB.NET: DuckDBConnection:建立與記憶體內 DuckDB 資料庫檔案 ("資料來源=:記憶體:") 的連線。 整個程式碼中都會使用此連線來執行 SQL 指令。 2.資料庫作業: 表格建立:定義 SQL 指令 (CREATE TABLE integers(book STRING, cost INTEGER);),以建立一個名為 integers 的資料表,其列為 book (STRING) 和 cost (INTEGER)。 資料插入:將行插入整數表 (INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);). 資料擷取:執行 SELECT 查詢 (SELECT book, cost FROM integers;),從整數資料表擷取資料。 擷取的資料會格式化為 HTML (內容),並列印至控制台。 3.使用 IronPDF 生成 PDF: Rendering HTML to PDF:使用 IronPDF 的 ChromePdfRenderer 將 HTML 內容 (content) 轉換成 PDF 文件 (pdf)。 儲存 PDF:將生成的 PDF 檔案儲存為目前目錄中的 "AwesomeDuckDbNet.pdf"。 輸出 PDF。 IronPDF 授權。 IronPdf 套件需要授權才能執行。 在存取套件之前,在應用程式的開頭加入以下程式碼。 IronPdf.License.LicenseKey = "IRONPDF-KEY"; IronPdf.License.LicenseKey = "IRONPDF-KEY"; IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel IronPDF的試用授權頁面提供試用授權。 結論 DuckDB.NET C# 套件是將 DuckDB 的分析功能整合至 .NET 應用程式的強大工具。 其易用性、對各種資料格式的支援,以及與 C# 的無縫整合,使其成為開發資料密集應用程式的開發人員的絕佳選擇。 無論您是要建立資料分析工具、ETL 管道或其他資料驅動的應用程式,DuckDB.NET 都能幫助您有效率地達成目標。 常見問題解答 DuckDB.NET 在 C# 應用程式中用來做什麼? DuckDB.NET 用於在 C# 應用程式中整合 DuckDB 原生函式庫,透過 ADO.NET 提供者為開發人員提供強大的分析功能。 如何在 C# 專案中安裝 DuckDB.NET? 您可以使用 .NET CLI 指令 dotnet add package DuckDB.NET.Data.Full 或透過 Visual Studio 中的 NuGet Package Manager 安裝 DuckDB.NET。 如何使用 DuckDB.NET 執行 SQL 查詢? 您可以使用 DuckDB.NET 執行 SQL 查詢,方法是使用 DuckDBConnection 建立連線,並執行 SQL 指令來建立資料表、插入和擷取資料。 DuckDB.NET 是否支援從 CSV 和 Parquet 檔案讀取資料? 是的,DuckDB.NET 支援各種格式的資料擷取,包括 CSV 和 Parquet 檔案,允許在 C# 應用程式中無縫整合和處理這些資料類型。 如何在 C# 中將 HTML 轉換為 PDF? 您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換成 PDF。您也可以使用 RenderHtmlFileAsPdf 將 HTML 檔案轉換成 PDF。 在資料密集的專案中使用 DuckDB.NET 有什麼好處? DuckDB.NET 提供強大的分析功能,支援以 SQL 為基礎的資料處理,並可輕鬆與 C# 應用程式整合,是資料密集型專案的理想選擇。 DuckDB.NET 如何與資料框架整合? DuckDB.NET 可以與資料框架整合,實現基於 SQL 的資料操作,這對於執行複雜的資料分析任務尤其有用。 如何使用 DuckDB.NET 將資料匯出成 CSV 檔案? 您可以使用 COPY 語句使用 DuckDB.NET 將資料匯出至 CSV 檔案。例如,使用 COPY integers TO 'output.csv' (FORMAT CSV); 將表格資料匯出到 CSV 檔案。 IronPdf 支援哪些平台? IronPDF 支援 .NET Core (8、7、6、5 及 3.1+)、.NET Standard (2.0+) 及 .NET Framework (4.6.2+),並與 Windows、Linux 及 macOS 相容。 我可以結合 DuckDB.NET 和 IronPDF 來產生報表嗎? 是的,您可以將用於資料庫操作的 DuckDB.NET 和用於產生 PDF 報告的 IronPDF 結合起來,充分利用 DuckDB 的資料庫功能和 IronPDF 的 PDF 產生功能。 Jacob Mellor 立即與工程團隊聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技術官,作為 C# PDF 技術的先鋒工程師。作為 Iron Software 核心代碼的原作者,他自開始以來塑造了公司產品架構,與 CEO Cameron Rimington 一起將其轉變為一家擁有超過 50 名員工的公司,為 NASA、特斯拉 和 全世界政府機構服務。Jacob 持有曼徹斯特大學土木工程一級榮譽学士工程學位(BEng) (1998-2001)。他於 1999 年在倫敦開設了他的第一家軟件公司,並於 2005 年製作了他的首個 .NET 組件,專注於解決 Microsoft 生態系統內的複雜問題。他的旗艦產品 IronPDF & Iron Suite .NET 庫在全球 NuGet 被安裝超過 3000 萬次,其基礎代碼繼續為世界各地的開發工具提供動力。擁有 25 年的商業經驗和 41 年的編碼專業知識,Jacob 仍專注於推動企業級 C#、Java 及 Python PDF 技術的創新,同時指導新一代技術領袖。 相關文章 更新12月 11, 2025 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 LazyCache C#(對開發者如何理解的工作)WebGrease .NET Core(對開發者...
更新12月 11, 2025 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多