DuckDB.NET.Bindings.Full
1.5.0
dotnet add package DuckDB.NET.Bindings.Full --version 1.5.0
NuGet\Install-Package DuckDB.NET.Bindings.Full -Version 1.5.0
<PackageReference Include="DuckDB.NET.Bindings.Full" Version="1.5.0" />
<PackageVersion Include="DuckDB.NET.Bindings.Full" Version="1.5.0" />
<PackageReference Include="DuckDB.NET.Bindings.Full" />
paket add DuckDB.NET.Bindings.Full --version 1.5.0
#r "nuget: DuckDB.NET.Bindings.Full, 1.5.0"
#:package DuckDB.NET.Bindings.Full@1.5.0
#addin nuget:?package=DuckDB.NET.Bindings.Full&version=1.5.0
#tool nuget:?package=DuckDB.NET.Bindings.Full&version=1.5.0
DuckDB.NET
DuckDB bindings for C#

Usage
dotnet add package DuckDB.NET.Data.Full
using (var duckDBConnection = new DuckDBConnection("Data Source=file.db"))
{
duckDBConnection.Open();
using var command = duckDBConnection.CreateCommand();
command.CommandText = "CREATE TABLE integers(foo INTEGER, bar INTEGER);";
var executeNonQuery = command.ExecuteNonQuery();
command.CommandText = "INSERT INTO integers VALUES (3, 4), (5, 6), (7, 8);";
executeNonQuery = command.ExecuteNonQuery();
command.CommandText = "Select count(*) from integers";
var executeScalar = command.ExecuteScalar();
command.CommandText = "SELECT foo, bar FROM integers";
var reader = command.ExecuteReader();
PrintQueryResults(reader);
}
private static void PrintQueryResults(DbDataReader queryResult)
{
for (var index = 0; index < queryResult.FieldCount; index++)
{
var column = queryResult.GetName(index);
Console.Write($"{column} ");
}
Console.WriteLine();
while (queryResult.Read())
{
for (int ordinal = 0; ordinal < queryResult.FieldCount; ordinal++)
{
var val = queryResult.GetInt32(ordinal);
Console.Write(val);
Console.Write(" ");
}
Console.WriteLine();
}
}
MotherDuck
To connect to MotherDuck:
using var duckDBConnection = new DuckDBConnection("DataSource=md:{your_database}?motherduck_token=ey...");
DuckDB Extensions (C#)
If you want to build DuckDB extensions with C#, see Giorgi/DuckDB.ExtensionKit.
Known Issues
When debugging your project that uses DuckDB.NET library, you may get the following error: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. The error happens due to debugger interaction with the native memory. For a workaround check out Debugger Options mess up debugging session during Marshalling
Documentation
Documentation is available at https://duckdb.net
Support
If you encounter a bug with the library Create an Issue. Join the DuckDB dotnet channel for DuckDB.NET-related topics.
Contributors
Sponsors
A big thanks to DuckDB Labs and AWS Open Source Software Fund for sponsoring the project!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on DuckDB.NET.Bindings.Full:
| Package | Downloads |
|---|---|
|
DuckDB.NET.Data.Full
DuckDB ADO.NET Provider for C#. |
|
|
SQLProvider.DuckDb
Type providers for DuckDB database access. |
|
|
DuckDbSharp
Bidirectional interoperability layer between DuckDB and .NET. |
|
|
TheTechIdea.Beep.DuckDBDataSourceCore
Package Description |
GitHub repositories (4)
Showing the top 4 popular GitHub repositories that depend on DuckDB.NET.Bindings.Full:
| Repository | Stars |
|---|---|
|
apache/arrow-adbc
Database connectivity API standard and libraries for Apache Arrow
|
|
|
erikdarlingdata/PerformanceMonitor
Free, open-source SQL Server performance monitoring. All the important stuff. Built-in MCP server for AI integration.
|
|
|
alnkesq/AppViewLite
A Bluesky appview focused on low resource consumption
|
|
|
RusselWebber/xlDuckDb
Use DuckDB within Excel with the xlDuckDb addin
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.5.0 | 1,446 | 3/10/2026 |
| 1.4.4 | 35,071 | 2/3/2026 |
| 1.4.4-alpha.2 | 2,860 | 12/19/2025 |
| 1.4.3 | 67,702 | 12/11/2025 |
| 1.4.1 | 119,719 | 10/13/2025 |
| 1.3.2 | 148,194 | 7/8/2025 |
| 1.3.0 | 94,980 | 6/3/2025 |
| 1.2.1 | 314,754 | 3/5/2025 |
| 1.2.1-alpha.8 | 790 | 2/19/2025 |
| 1.2.0 | 123,748 | 2/6/2025 |
| 1.1.3 | 367,455 | 11/7/2024 |
| 1.1.2.1 | 108,742 | 10/21/2024 |
| 1.1.2-alpha.5 | 382 | 10/10/2024 |
| 1.1.1 | 113,760 | 9/24/2024 |
| 1.1.0.1 | 179,950 | 9/9/2024 |
| 1.0.2 | 111,716 | 7/22/2024 |
| 1.0.1 | 50,411 | 6/22/2024 |
| 1.0.0 | 72,252 | 6/3/2024 |
- Updated to DuckDB v1.5.0
- Dropped netstandard2.0 and net6.0 (now targets net8.0+)
- Migrated from DllImport to LibraryImport with source-generated P/Invoke
- Custom string marshallers for correct DuckDB string ownership handling
- SuppressGCTransition on trivial native calls

