ParadoxReader 1.0.0
dotnet add package ParadoxReader --version 1.0.0
NuGet\Install-Package ParadoxReader -Version 1.0.0
<PackageReference Include="ParadoxReader" Version="1.0.0" />
<PackageVersion Include="ParadoxReader" Version="1.0.0" />
<PackageReference Include="ParadoxReader" />
paket add ParadoxReader --version 1.0.0
#r "nuget: ParadoxReader, 1.0.0"
#:package ParadoxReader@1.0.0
#addin nuget:?package=ParadoxReader&version=1.0.0
#tool nuget:?package=ParadoxReader&version=1.0.0
Paradox Reader
A .NET library for reading and writing Borland/Corel Paradox database tables (.DB, .PX, .Xg#, .MB) without requiring the Borland Database Engine (BDE) to be installed.
Targets .NET 10, .NET Standard 2.0 (covers .NET Framework 4.6.1+ consumers), giving you a dependency-free, cross-platform way to work with legacy Paradox data from modern .NET applications.
Features
- Read Paradox tables — parses table headers, field definitions, and record data directly from
.DBfiles. - Write support — append, update, and delete records, with automatic AutoInc field handling.
- Index management — reads and maintains primary (
.PX) and secondary (.Xg#) index files, keeping change counters and table versions in sync so BDE doesn't consider the table out of date. - BLOB/Memo support — reads and writes
.MBblob files for memo and BLOB field types. - Table rebuilding — includes a
TableRebuilderfor rebuilding/repairing tables and indexes, similar topdxrbld. - Table creation — create brand-new Paradox tables and schemas from scratch via
TableCreator. - SQL-like querying — a lightweight SQL layer (
ParadoxReader.Sql) providesParadoxConnection/ParadoxCommand/ParadoxDataReader, including basic joins andWHEREclause translation, for querying tables with familiar ADO.NET-style code. - Password-protected tables — supports reading/writing tables secured with a Paradox table password.
Installation
dotnet add package ParadoxReader
Or via the NuGet Package Manager in Visual Studio, search for ParadoxReader.
Quick Start
Reading a table
using ParadoxReader;
using var table = new ParadoxTableFile(@"C:\data\CUSTOMER.DB");
foreach (var record in table.Records)
{
Console.WriteLine(string.Join(", ", record.DataValues));
}
Appending a record
using var table = new ParadoxTableFile(@"C:\data\CUSTOMER.DB");
table.AppendRecord(new object[] { 1, "Jane Doe", "jane@example.com" });
Querying with SQL
using ParadoxReader.Sql;
using var connection = new ParadoxConnection(@"C:\data");
connection.Open();
using var command = new ParadoxCommand("SELECT * FROM CUSTOMER WHERE Id = @id", connection);
command.Parameters.AddWithValue("@id", 1);
using var reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader["Name"]);
}
Rebuilding a table
using ParadoxReader;
var result = TableRebuilder.Rebuild(@"C:\data\CUSTOMER.DB");
Project Structure
| Project | Description |
|---|---|
ParadoxReader |
The core library — packaged and published to NuGet. |
ParadoxTest |
Test harness / regression suite exercising the library against sample and corpus data. |
ParadoxDesktop |
A Windows Forms desktop app (net461) for browsing Paradox tables. |
Contributing
Issues and pull requests are welcome. Please open an issue describing the problem or feature before submitting large changes.
License
MIT
| Product | Versions 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 was computed. 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 was computed. 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. |
-
.NETStandard 2.0
- No dependencies.
-
net10.0
- No dependencies.
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.0 | 111 | 9/20/2026 |