IRONSOFTWAREHOME
开发者更新

DuckDB C#(开发者用法)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年4月23日

DuckDB.NET 是一个用于 DuckDB 本机库的 .NET 绑定的开源提供程序,旨在与 C# 无缝集成。 它提供了一个 ADO.NET 提供程序,使得在 .NET 应用程序中使用 DuckDB 这一底层绑定库变得轻而易举。 此软件包非常适合希望在 C# 环境中利用 DuckDB 强大分析能力的开发人员。

安装

安装 DuckDB.NET 非常简单。 您可以使用 .NET CLI 将其添加到您的项目中:

dotnet add package DuckDB.NET.Data.Full
SHELL

或者,您可以通过 Visual Studio 中的 NuGet 包管理器进行安装。

基本用法

安装后,您可以开始在 C# 应用程序中使用 DuckDB.NET 执行 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)}");
        }
    }
}

该示例演示了如何使用 DuckDB.NET 创建表、插入数据和查询数据。

输出

DuckDB C#(开发人员如何使用):图1 - DuckDB.NET控制台输出

数据摄取

DuckDB.NET 支持从多种格式读取数据,包括 CSV 和 Parquet 文件。 这是如何从 CSV 文件读取数据的方法:

command.CommandText = "COPY integers FROM 'example.csv' (FORMAT CSV);";
command.ExecuteNonQuery();

与数据框的集成

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
}

将数据写入磁盘

DuckDB.NET 支持将数据以多种格式写入磁盘。 您可以使用 COPY 语句将数据导出到 CSV 文件:

command.CommandText = "COPY integers TO 'output.csv' (FORMAT CSV);";
command.ExecuteNonQuery();

IronPDF简介

DuckDB C#(开发人员如何使用):图2 - 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");
    }
}
  1. HTML 转 PDF:
  • 将 HTML、CSS 和 JavaScript 内容转换为 PDF。
  • 使用 Chrome 渲染引擎生成像素完美的 PDF 文档。
  • 从 URL、HTML 文件或 HTML 字符串生成 PDF。

2.图片和内容转换:

  • 将图像转换为 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 创建一个控制台应用程序,如下所示。

DuckDB C#(开发人员如何使用):图3 - 控制台应用

提供项目名称。

DuckDB C#(开发人员如何使用):图4 - 项目配置

提供 .NET 版本。

DuckDB C#(开发人员如何使用):图5 - 目标框架

安装 IronPDF 包。

DuckDB C#(开发人员如何使用):图6 - IronPDF

安装 DuckDB.NET 包。

DuckDB C#(开发人员如何使用):图7 - 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");
        }
    }
}

代码解释

代码旨在展示如何使用 DuckDB.NET 进行数据库操作,并使用 IronPDF 生成包含数据库查询结果的 PDF 报告。

关键组件

  1. DuckDB.NET:
    • **DuckDBConnection:**建立与内存中的 DuckDB 数据库文件("数据源=:memory:")的连接。 这个连接在代码中用于执行 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: ***将 HTML 渲染为 PDF:**使用 IronPDF 中的 ChromePdfRenderer 将 HTML 内容(内容)转换为 PDF 文档(pdf)。 ***保存 PDF:**将生成的 PDF 保存为当前目录中的"AwesomeDuckDbNet.pdf"。

输出

DuckDB C#(开发人员如何使用):图8 - 控制台输出

PDF

DuckDB C#(开发人员如何使用):图9 - PDF输出

IronPDF 许可

IronPDF 包需要许可证才能运行。 在应用程序开始时在包被访问之前添加以下代码。

IronPdf.License.LicenseKey = "IRONPDF-KEY";

IronPDF 的试用许可证可在 IronPDF 的试用许可证页面 获得。

结论

DuckDB.NET C# 包是一个强大的工具,可将 DuckDB 的分析能力集成到 .NET 应用程序中。 其易用性、对多种数据格式的支持以及与 C# 的无缝集成,使其成为开发数据密集型应用程序的开发人员的绝佳选择。 无论您是构建数据分析工具、ETL 管道还是其他数据驱动的应用程序,DuckDB.NET 都能帮助您高效地实现目标。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起