DuckDB C#(開発者向けの仕組み)
DuckDB.NET は、C#とシームレスに統合するように設計された DuckDB ネイティブライブラリ用の .NET バインディングのオープンソースプロバイダーです。 ADO.NET プロバイダーを提供するため、.NET アプリケーションで低レベルのバインディングライブラリである DuckDB を簡単に使用できます。 このパッケージは、DuckDB の強力な分析機能を C# 環境で活用しようとしている開発者に最適です。
インストール
DuckDB.NET のインストールは簡単です。 あなたのプロジェクトに .NET CLI を使って追加できます。
dotnet add package DuckDB.NET.Data.Fulldotnet add package DuckDB.NET.Data.Fullまた、Visual StudioのNuGetパッケージマネージャー経由でインストールすることも可能です。
基本的な使用法
一度インストールしたら、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)}");
}
}
}この例は、DuckDB.NET を使用してテーブルを作成し、データを挿入およびクエリする方法を示しています。
出力

データの取り込み
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();データフレームとの統合
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
}ディスクへのデータ書き込み
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();IronPDFの紹介

IronPDF は、.NET プロジェクトでの PDF ドキュメントの生成、管理、およびコンテンツの抽出を可能にする C# 用 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");
}
}- HTMLからPDFへの変換:
- HTML、CSS、および JavaScript コンテンツを PDF に変換します。
- ピクセル パーフェクトな PDF ドキュメントのための Chrome レンダリング エンジン。
- 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 を使用してコンソールアプリケーションを作成します。

プロジェクト名を入力します。

.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");
}
}
}コードの説明
このコードは、DuckDB.NET をデータベース操作に使用し、データベースクエリ結果を含む PDF レポートを生成するために IronPDF を使用する方法を実演することを目的としています。
キー コンポーネント
- DuckDB.NET:
- DuckDBConnection:メモリ内の DuckDB データベース ファイルへの接続を確立します ("Data Source=:memory:")。 この接続は SQL コマンドを実行するためにコード全体で使用されます。
2.データベース操作: *テーブルの作成:* SQL コマンド (CREATE TABLE integers(book STRING, cost INTEGER);) を定義して、book (STRING) 列と cost (INTEGER) 列を持つ integers という名前のテーブルを作成します。 データの挿入:**整数テーブルに行を挿入します (INSERT INTO integers VALUES ('book1', 25), ('book2', 30), ('book3', 10);)。 *データ取得: SELECT クエリ (SELECT book, cost FROM integers;) を実行して、整数テーブルからデータを取得します。 取得したデータは HTML (content) にフォーマットされ、コンソールに出力されます。
- IronPDFによるPDF生成:
- HTML から PDF へのレンダリング: IronPDF の ChromePdfRenderer を使用して、HTML コンテンツ (content) を PDF ドキュメント (pdf) に変換します。
- PDF の保存:生成された PDF を現在のディレクトリに"AwesomeDuckDbNet.pdf"として保存します。
出力


IronPDFのライセンス
IronPDF パッケージは実行するためにライセンスが必要です。 パッケージにアクセスする前にアプリケーションの冒頭に以下のコードを追加してください。
IronPdf.License.LicenseKey = "IRONPDF-KEY";IronPdf.License.LicenseKey = "IRONPDF-KEY";IronPDF の試用ライセンスページで試用ライセンスを入手できます。
結論
DuckDB.NET C#パッケージは、.NETアプリケーションに DuckDB の分析機能を統合するための強力なツールです。 その使いやすさ、さまざまなデータ形式のサポート、および 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パッケージマネージャーを通じてDuckDB.NETをインストールできます。
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ファイルにデータをエクスポートするにはどうすればいいですか?
DuckDB.NETではCOPYステートメントを使って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をデータベース操作に、IronPDFをPDFレポート生成に使用して、DuckDBのデータベース機能とIronPDFのPDF生成機能を活用できます。








