CSharpDB.Data
3.0.0
Prefix Reserved
dotnet add package CSharpDB.Data --version 3.0.0
NuGet\Install-Package CSharpDB.Data -Version 3.0.0
<PackageReference Include="CSharpDB.Data" Version="3.0.0" />
<PackageVersion Include="CSharpDB.Data" Version="3.0.0" />
<PackageReference Include="CSharpDB.Data" />
paket add CSharpDB.Data --version 3.0.0
#r "nuget: CSharpDB.Data, 3.0.0"
#:package CSharpDB.Data@3.0.0
#addin nuget:?package=CSharpDB.Data&version=3.0.0
#tool nuget:?package=CSharpDB.Data&version=3.0.0
CSharpDB.Data
ADO.NET provider for the CSharpDB embedded database engine. Standard DbConnection, DbCommand, and DbDataReader with parameterized queries and transactions.
Overview
CSharpDB.Data provides a standard System.Data.Common (ADO.NET) data provider for CSharpDB. Use familiar DbConnection/DbCommand/DbDataReader patterns to query and modify your embedded database. Supports parameterized queries, transactions, prepared statements, prepared-template caching, schema introspection, and both file-backed and in-memory connection modes.
Key Types
| Type | Description |
|---|---|
CSharpDbConnection |
DbConnection for file-backed databases, private :memory: databases, and named shared :memory:name databases |
CSharpDbCommand |
DbCommand with prepared statement support, template caching, and parameter binding |
CSharpDbDataReader |
DbDataReader with async iteration, typed getters, and HasRows |
CSharpDbTransaction |
DbTransaction with auto-rollback on dispose |
CSharpDbFactory |
Singleton DbProviderFactory for creating connections and commands |
CSharpDbParameter |
Parameter support with AddWithValue convenience method |
Usage
using CSharpDB.Data;
// Open a connection
await using var connection = new CSharpDbConnection("Data Source=myapp.db");
await connection.OpenAsync();
// Create a table
await using var cmd = connection.CreateCommand();
cmd.CommandText = """
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
)
""";
await cmd.ExecuteNonQueryAsync();
// Insert with parameters
cmd.CommandText = "INSERT INTO products VALUES (@id, @name, @price)";
cmd.Parameters.AddWithValue("@id", 1);
cmd.Parameters.AddWithValue("@name", "Widget");
cmd.Parameters.AddWithValue("@price", 9.99);
await cmd.ExecuteNonQueryAsync();
// Query with a data reader
cmd.CommandText = "SELECT name, price FROM products WHERE price < @max";
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@max", 50.0);
await using var reader = await cmd.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
Console.WriteLine($"{reader.GetString(0)}: ${reader.GetDouble(1):F2}");
}
// Transactions
await using var tx = await connection.BeginTransactionAsync();
cmd.Transaction = (CSharpDbTransaction)tx;
cmd.CommandText = "INSERT INTO products VALUES (2, 'Gadget', 19.99)";
await cmd.ExecuteNonQueryAsync();
await tx.CommitAsync();
// Save an in-memory connection back to disk
await connection.SaveToFileAsync("products.db");
// Schema introspection
var csConn = (CSharpDbConnection)connection;
var tables = csConn.GetTableNames();
var schema = csConn.GetTableSchema("products");
Using DbProviderFactory
var factory = CSharpDbFactory.Instance;
await using var conn = factory.CreateConnection();
conn.ConnectionString = "Data Source=myapp.db";
await conn.OpenAsync();
In-Memory Connection Strings
Data Source=:memory:
Creates a private in-memory database scoped to a single connection.
Data Source=:memory:shared-cache
Creates or attaches to a named shared in-memory database within the current process.
Data Source=:memory:shared-cache;Load From=seed.db
Seeds an in-memory database from seed.db on first open. For named shared memory, later opens must either omit Load From or use the same source path.
Named shared in-memory connections allow multiple live connections at once. One connection may own an explicit transaction at a time; other connections can still run reads against the last committed snapshot while that transaction is active.
Connection Pooling (Opt-In)
Connection pooling is disabled by default. Enable it explicitly in the connection string:
Data Source=myapp.db;Pooling=true;Max Pool Size=16
To force-release pooled physical connections (for example before deleting database files):
CSharpDbConnection.ClearPool("Data Source=myapp.db;Pooling=true;Max Pool Size=16");
CSharpDbConnection.ClearAllPools();
ClearPool and ClearAllPools also clear named shared in-memory hosts.
Installation
dotnet add package CSharpDB.Data
For the recommended all-in-one package:
dotnet add package CSharpDB
Dependencies
CSharpDB.Engine- embedded database engine
Related Packages
| Package | Description |
|---|---|
| CSharpDB | All-in-one package for application development |
| CSharpDB.Engine | Underlying embedded database engine |
| CSharpDB.Client | Authoritative client SDK for direct and daemon-backed database access |
License
MIT - see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- CSharpDB.Engine (>= 3.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CSharpDB.Data:
| Package | Downloads |
|---|---|
|
CSharpDB
All-in-one package for CSharpDB application development. Includes the unified client, engine, ADO.NET provider, and diagnostics. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 82 | 4/8/2026 |
| 2.9.1 | 75 | 4/7/2026 |
| 2.8.1 | 85 | 4/6/2026 |
| 2.8.0 | 84 | 4/4/2026 |
| 2.7.0 | 87 | 3/31/2026 |
| 2.6.0 | 87 | 3/29/2026 |
| 2.5.0 | 179 | 3/28/2026 |
| 2.4.0 | 86 | 3/24/2026 |
| 2.3.0 | 83 | 3/22/2026 |
| 2.2.0 | 79 | 3/21/2026 |
| 2.0.1 | 97 | 3/14/2026 |
| 2.0.0 | 86 | 3/13/2026 |
| 1.9.0 | 91 | 3/12/2026 |
| 1.8.0 | 95 | 3/11/2026 |
| 1.7.0 | 93 | 3/8/2026 |
| 1.6.0 | 100 | 3/8/2026 |
| 1.5.0 | 104 | 3/7/2026 |
| 1.4.0 | 98 | 3/7/2026 |
| 1.3.0 | 100 | 3/6/2026 |
| 1.2.0 | 94 | 3/5/2026 |