DBAClientX.Dbf 1.0.15

dotnet add package DBAClientX.Dbf --version 1.0.15
                    
NuGet\Install-Package DBAClientX.Dbf -Version 1.0.15
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DBAClientX.Dbf" Version="1.0.15" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DBAClientX.Dbf" Version="1.0.15" />
                    
Directory.Packages.props
<PackageReference Include="DBAClientX.Dbf" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DBAClientX.Dbf --version 1.0.15
                    
#r "nuget: DBAClientX.Dbf, 1.0.15"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DBAClientX.Dbf@1.0.15
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DBAClientX.Dbf&version=1.0.15
                    
Install as a Cake Addin
#tool nuget:?package=DBAClientX.Dbf&version=1.0.15
                    
Install as a Cake Tool

DBAClientX.Dbf

Read DBF/xBase tables with a forward-only DbDataReader. This package owns DBF decoding and DBT/FPT memo access without an ODBC driver, database server, or SQL-provider dependency.

using DBAClientX.Dbf;

using var reader = DbfDataReader.Open("customers.dbf");
while (reader.Read()) {
    Console.WriteLine(reader["NAME"]);
}

Schema exposes column names, native types, lengths, decimal counts, nullability, language driver, and dialect before reading rows. Standard consumers can use GetSchemaTable(), DataTable.Load(reader), and IDataReader exports. Typed getters return the declared CLR type; they do not round or implicitly convert numeric values.

using var reader = await DbfDataReader.OpenAsync("customers.dbf",
    new DbfReadOptions { MaxRecords = 100_000 }, cancellationToken);
while (await reader.ReadAsync(cancellationToken)) {
    // ReadAsync performs asynchronous table I/O. Memo getters use bounded synchronous I/O.
    Console.WriteLine(reader.GetString(0));
}

Supported profiles

Table profile Version bytes Fields
dBASE III compatible 03, 83 Character C, decimal N, floating F, date D, logical L; 83 supports text M through DBT
FoxPro 2 with memos F5 C, N, F, D, L, FPT memo M, opaque general/picture G/P
Visual FoxPro 30, 31, 32 Above types plus integer I, double B, currency Y, datetime T, binary C/M, and nullable fields through _NullFlags

Version recognition does not imply support for every field in that generation. Varchar, varbinary, blob, unsupported system fields, dBASE IV/7 memo layouts, encrypted files, and incomplete transactions fail explicitly. Autoincrement field values are read as integers; this reader does not implement generation or editing. Text numeric fields are limited to 20 bytes and decoded as decimal; binary currency retains its four decimal places. Dates and datetimes use DateTimeKind.Unspecified.

Deleted records are skipped by default. Set IncludeDeletedRecords to include them and inspect IsDeleted. SourceRecordNumber gives the one-based physical record number, including skipped records. Blank numeric, date, and unknown logical fields return DBNull.Value. Empty character and unreferenced memo fields return empty strings or byte arrays; native nullable fields return DBNull.Value according to the null bitmap.

Indexes and database backlinks are reported as metadata and never followed. General, picture, and binary memo payloads remain inert bytes. This package does not interpret embedded objects, query indexes, execute code, or write DBF files.

Streams, encodings, and limits

Path opens own their table and same-stem .dbt/.DBT or .fpt/.FPT files. Stream opens begin at each stream's current position. Table streams may be nonseekable; memo streams must be readable and seekable. LeaveOpen defaults to true for both caller streams. The reader copies options at open time and is not thread-safe.

using var reader = DbfDataReader.Open(tableStream,
    new DbfReadOptions { MaxInputBytes = 16 * 1024 * 1024, LeaveOpen = true },
    memoStream, cancellationToken);

A missing sidecar permits schema and ordinary-column reads. Accessing a nonempty memo reference without its sidecar throws InvalidDataException. Both table and memo storage are bounded, as are physical record count, field count, individual memo payload, and aggregate materialized memo bytes. Repeated getters for one field use the current row's cache. Repeated references in different rows count again toward the aggregate memo budget.

The header's supported language-driver mapping selects a strict decoder. Driver zero uses ASCII; unknown drivers require an explicit Encoding override. Invalid byte sequences fail. The package never registers a global encoding provider or guesses a locale. After a partial storage read or malformed value, the reader is faulted and cannot resume. A cancelled async call that has not begun I/O leaves the current row accessible.

Evidence

The focused tests use fictional fixtures produced with dbf 0.99.11 and independently decoded with dbfread 2.0.7. Their generator, inputs, expected records, and SHA-256 manifest live in the fixture directory. The producer supplies native null and binary field evidence; dbfread does not interpret those flags completely. Additional tests cover standard DataTable consumption, sync/async traversal, current-position streams, ownership, cancellation, strict encoding, truncation, and resource limits.

This evidence covers the named fixtures and contracts. It does not establish acceptance by original dBASE/FoxPro applications or NativeAOT qualification.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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 Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on DBAClientX.Dbf:

Package Downloads
OfficeIMO.Reader.Dbf

DBF/xBase table ingestion backed by the canonical DbaClientX codec.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.15 80 10/15/2026
1.0.14 79 10/12/2026
1.0.13 84 10/12/2026
1.0.12 6,422 10/10/2026
1.0.11 998 10/10/2026