【发布时间】:2018-09-12 18:17:45
【问题描述】:
我开发 .NET 应用程序 (C#),我需要读取和更新 Paradox 7.x 数据库中的一些数据。
根据Microsoft article 的 Paradox 7-8 不提供对 OLEDB 的支持。
根据another SO question 可以读取,但不能写入。
那么有什么方法(可能是一些第三方库或一些 BDE 包装器)我如何读写 Paradox 7.x 数据库?
更新我已经尝试过 OleDB 方法:
var builder = new OleDbConnectionStringBuilder();
builder.DataSource = "D:\\MyBase\\";
builder.Provider = "Microsoft.Jet.OLEDB.4.0";
var connection = new OleDbConnection(builder.ToString() + ";Extended Properties=Paradox 5.x");
var command = new OleDbCommand("SELECT * FROM Planes", connection);
connection.Open();
using (var reader = command.ExecuteReader())
if (reader.HasRows)
while (reader.Read())
listBox1.Items.Add(reader.GetString(2));
这个失败并出现 OleDbException(可以预料,因为我的数据库有 Paradox 7.x 格式):
外部表不是预期的格式
如果我将连接字符串更改为Extended Properties=Paradox 7.x -
一个失败并出现另一个 OleDbException(可以预期,因为根据 Microsoft 文章,OLEDB 不支持 Paradox 7))
无效操作
我尝试过 ODBC 方法:
var connectionString = "Driver={Microsoft Paradox Driver (*.db )};"
+ "DriverID=538;Fil=Paradox 7.X;"
+ "DefaultDir=D:\\MyBase\\;"
+ "Dbq=D:\\MyBase\\;"
+ "CollatingSequence=ASCII;";
var connection = new OdbcConnection(connectionString);
var command = new OdbcCommand("SELECT * FROM Planes", connection);
connection.Open();
using (var reader = command.ExecuteReader())
if (reader.HasRows)
while (reader.Read())
listBox1.Items.Add(reader.GetString(2));
那个也因 OdbcException 而失败
错误 [HY000] [Microsoft] [Paradox ODBC 驱动程序] 外部表不是预期格式
所以现在什么都行不通..
【问题讨论】:
-
@PeterB 我已经尝试了所有方法 - 请参阅 UPDATE 部分
-
那么可能是这个:connectionstrings.com/paradox
-
@PeterB 尝试了 .NET Framework Data Provider for OLE DB 和 Microsoft Paradox Driver 部分 - 仍然是同样的错误..