DBAClientX.SqlServer
0.15.0
See the version list below for details.
dotnet add package DBAClientX.SqlServer --version 0.15.0
NuGet\Install-Package DBAClientX.SqlServer -Version 0.15.0
<PackageReference Include="DBAClientX.SqlServer" Version="0.15.0" />
<PackageVersion Include="DBAClientX.SqlServer" Version="0.15.0" />
<PackageReference Include="DBAClientX.SqlServer" />
paket add DBAClientX.SqlServer --version 0.15.0
#r "nuget: DBAClientX.SqlServer, 0.15.0"
#:package DBAClientX.SqlServer@0.15.0
#addin nuget:?package=DBAClientX.SqlServer&version=0.15.0
#tool nuget:?package=DBAClientX.SqlServer&version=0.15.0
DbaClientX.SqlServer
SQL Server provider for DbaClientX. Thin, fast ADO.NET wrapper with streaming, retries, and transactions.
- Target Frameworks:
net472,net8.0,net10.0 - NuGet:
DBAClientX.SqlServer
Install
dotnet add package DBAClientX.SqlServer
Quick examples
Execute non-query:
var cli = new DBAClientX.SqlServer();
cli.ExecuteNonQuery(
serverOrInstance: ".", database: "App", integratedSecurity: true,
query: "UPDATE Users SET LastLogin=SYSUTCDATETIME() WHERE Id=@Id",
parameters: new Dictionary<string,object?> { ["@Id"] = 1 }
);
Query + stream rows (netstandard2.1+/net8.0):
await foreach (DataRow row in cli.QueryStreamAsync(
serverOrInstance: ".", database: "App", integratedSecurity: true,
query: "SELECT TOP 100 Id, Name FROM dbo.Users ORDER BY Id",
cancellationToken: ct))
{
// use row["Id"], row["Name"]
}
Typed mapped query:
var rows = await cli.QueryAsListAsync(
connectionString: "Server=.;Database=App;Integrated Security=True;Trust Server Certificate=True",
query: "SELECT TOP 100 Id, Name FROM dbo.Users ORDER BY Id",
map: row => new UserRow(
Id: row.GetInt32(row.GetOrdinal("Id")),
Name: row.GetString(row.GetOrdinal("Name"))),
cancellationToken: ct);
For larger result sets, use QueryStreamAsync<T> with the same mapper shape to avoid buffering all rows.
Use the owned DbDataReader surface when another API consumes a reader directly:
await using var reader = await cli.QueryReaderAsync(
connectionString: "Server=.;Database=App;Integrated Security=True;Encrypt=True",
query: "SELECT Id, Name FROM dbo.Users ORDER BY Id",
cancellationToken: ct);
while (await reader.ReadAsync(ct))
{
var id = reader.GetInt32(0);
var name = reader.GetString(1);
}
Disposing the reader also disposes its command and any connection opened for it. Output parameters are copied back after the provider reader closes. DisposeAsync uses provider asynchronous cleanup when available.
Non-query from a full connection string:
await cli.ExecuteNonQueryAsync(
connectionString: "Server=.;Database=App;Integrated Security=True;Encrypt=True",
query: "UPDATE dbo.Users SET LastLogin=SYSUTCDATETIME() WHERE Id=@Id",
parameters: new Dictionary<string, object?> { ["@Id"] = 1 },
cancellationToken: ct);
Scalar from a full connection string:
var count = await cli.ExecuteScalarAsync(
connectionString: "Server=.;Database=App;Integrated Security=True;Encrypt=True",
query: "SELECT COUNT(*) FROM dbo.Users",
cancellationToken: ct);
Stored procedure from a full connection string:
var result = await cli.ExecuteStoredProcedureAsync(
connectionString: "Server=.;Database=App;Integrated Security=True;Encrypt=True",
procedure: "dbo.GetRecentUsers",
parameters: new Dictionary<string, object?> { ["@Limit"] = 100 },
cancellationToken: ct);
Transactions:
cli.RunInTransaction(
serverOrInstance: ".",
database: "App",
integratedSecurity: true,
operation: tx => tx.ExecuteNonQuery(".", "App", true, "DELETE FROM Logs WHERE Level='Debug'", useTransaction: true)
);
See also
- Core mapping + invoker:
DBAClientX.Core - Other providers: PostgreSql, MySql, SQLite, Oracle
| 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. |
| .NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- DBAClientX.Core (>= 1.0.0)
- Microsoft.Data.SqlClient (>= 7.0.2)
-
net10.0
- DBAClientX.Core (>= 1.0.0)
- Microsoft.Data.SqlClient (>= 7.0.2)
-
net8.0
- DBAClientX.Core (>= 1.0.0)
- Microsoft.Data.SqlClient (>= 7.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.8 | 43 | 8/21/2026 |
| 0.16.0 | 61 | 8/20/2026 |
| 0.15.0 | 145 | 8/14/2026 |
| 0.14.0 | 100 | 8/2/2026 |
| 0.13.0 | 104 | 8/2/2026 |
| 0.12.0 | 1,327 | 7/12/2026 |
| 0.11.0 | 107 | 7/12/2026 |
| 0.10.0 | 387 | 6/28/2026 |
| 0.9.0 | 120 | 6/21/2026 |
| 0.8.0 | 137 | 6/20/2026 |
| 0.7.0 | 1,380 | 6/19/2026 |
| 0.6.0 | 621 | 5/25/2026 |
| 0.5.0 | 140 | 4/12/2026 |
| 0.4.0 | 115 | 4/11/2026 |
| 0.3.0 | 154 | 3/28/2026 |
| 0.2.0 | 115 | 3/10/2026 |
| 0.1.0 | 169 | 2/6/2026 |