DbfDataReader.SecurityFix
0.9.2
dotnet add package DbfDataReader.SecurityFix --version 0.9.2
NuGet\Install-Package DbfDataReader.SecurityFix -Version 0.9.2
<PackageReference Include="DbfDataReader.SecurityFix" Version="0.9.2" />
paket add DbfDataReader.SecurityFix --version 0.9.2
#r "nuget: DbfDataReader.SecurityFix, 0.9.2"
// Install DbfDataReader.SecurityFix as a Cake Addin #addin nuget:?package=DbfDataReader.SecurityFix&version=0.9.2 // Install DbfDataReader.SecurityFix as a Cake Tool #tool nuget:?package=DbfDataReader.SecurityFix&version=0.9.2
DbfDataReader.SecurityFix
DbfDataReader.SecurityFix is a security-patched version of DbfDataReader.
This version fixes vulnerabilities in System.Text.RegularExpressions
, ensuring safer processing of DBF (dBase) database files.
** Installation**
You can install this package via NuGet:
dotnet add package DbfDataReader.SecurityFix --version 2.0.1
Usage, to get summary info:
```csharp
var dbfPath = "path\\file.dbf";
using (var dbfTable = new DbfTable(dbfPath, Encoding.UTF8))
{
var header = dbfTable.Header;
var versionDescription = header.VersionDescription;
var hasMemo = dbfTable.Memo != null;
var recordCount = header.RecordCount;
foreach (var dbfColumn in dbfTable.Columns)
{
var name = dbfColumn.ColumnName;
var columnType = dbfColumn.ColumnType;
var length = dbfColumn.Length;
var decimalCount = dbfColumn.DecimalCount;
}
}
and to iterate over the rows:
var skipDeleted = true;
var dbfPath = "path/file.dbf";
using (var dbfTable = new DbfTable(dbfPath, Encoding.UTF8))
{
var dbfRecord = new DbfRecord(dbfTable);
while (dbfTable.Read(dbfRecord))
{
if (skipDeleted && dbfRecord.IsDeleted)
{
continue;
}
foreach (var dbfValue in dbfRecord.Values)
{
var stringValue = dbfValue.ToString();
var obj = dbfValue.GetValue();
}
}
}
There is also an implementation of DbDataReader:
var options = new DbfDataReaderOptions
{
SkipDeletedRecords = true
// Encoding = EncodingProvider.GetEncoding(1252);
};
var dbfPath = "path/file.dbf";
using (var dbfDataReader = new DbfDataReader(dbfPath, options))
{
while (dbfDataReader.Read())
{
var valueCol1 = dbfDataReader.GetString(0);
var valueCol2 = dbfDataReader.GetDecimal(1);
var valueCol3 = dbfDataReader.GetDateTime(2);
var valueCol4 = dbfDataReader.GetInt32(3);
}
}
which also means you can bulk copy to MS SqlServer:
var options = new DbfDataReaderOptions
{
SkipDeletedRecords = true
// Encoding = EncodingProvider.GetEncoding(1252);
};
var dbfPath = "path/file.dbf";
using (var dbfDataReader = new DbfDataReader(dbfPath, options))
{
using (var bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.DestinationTableName = "DestinationTableName";
try
{
bulkCopy.WriteToServer(dbfDataReader);
}
catch (Exception ex)
{
Console.WriteLine($"Error importing: dbf file: '{dbfPath}', exception: {ex.Message}");
}
}
}
Used by
DbfBulkCopy
Command line application to bulk copy from DBF files to MS SqlServer
dbf
Command line utility to display DBF info and contents
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- System.Data.Common (>= 4.3.0)
- System.Memory (>= 4.5.5)
- System.Net.Http (>= 4.3.4)
- System.Text.Encoding.CodePages (>= 7.0.0)
- System.Text.RegularExpressions (>= 4.3.1)
-
net6.0
- System.Net.Http (>= 4.3.4)
- System.Text.RegularExpressions (>= 4.3.1)
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 |
---|---|---|
0.9.2 | 0 | 2/19/2025 |