我正在尝试将Paradox 5表读入数据集或simular数据结构,以便将其放入SQL Server 2005表中。我已经搜索谷歌和SO,但没有太多运气。我试过ODBC:
public void ParadoxGet()
{
string ConnectionString = @"Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=C:\Data\;Dbq=C:\Data\;CollatingSequence=ASCII;";
DataSet ds = new DataSet();
ds = GetDataSetFromAdapter(ds, ConnectionString, "SELECT * FROM Growth");
foreach (String s in ds.Tables[0].Rows)
{
Console.WriteLine(s);
}
}
public DataSet GetDataSetFromAdapter(DataSet dataSet, string connectionString, string queryString)
{
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
OdbcDataAdapter adapter = new OdbcDataAdapter(queryString, connection);
connection.Open();
adapter.Fill(dataSet);
connection.Close();
}
return dataSet;
}
这只是返回错误
错误[HY000] [Microsoft] [ODBC Paradox驱动程序]外部表格格式不符。
我也厌倦了OELDB(Jet 4.0),但获得相同的外部表并不是预期的格式错误。
我有数据文件夹中的数据库文件和PX(增长表)...任何帮助都会非常适合。
答案 0 :(得分:3)
我遇到了同样的错误。它出现在我在Win2008 64上开始我的C#项目时(previos OS是Win2003 32)。此外,我发现它在控制台应用程序中工作正常,并在winforms中给出了不同的错误。似乎问题来自于在64位系统上运行的32 ODBC驱动程序的细节。 我的解决方案是:
// Program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// it is important to open paradox connection before creating
// the first form in the project
if (!Data.OpenParadoxDatabase())
return;
Application.Run(new MainForm());
}
连接字符串很常见:
string connStr = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;
Fil=Paradox 7.X;DefaultDir=C:\\DB;Dbq=C:\\DB;
CollatingSequence=ASCII;";
打开连接后,您可以在创建第一个表单后在任何位置关闭它(如果您需要在大多数时间保持数据库关闭),例如:
private void MainForm_Load(object sender, EventArgs e)
{
Data.CloseParadoxDatabase();
}
执行此操作后,您可以在执行应用程序时每次打开和关闭连接,并且不会有任何例外。
答案 1 :(得分:1)
也许这会帮助你,
http://support.microsoft.com/support/kb/articles/Q237/9/94.ASP?LN=EN-US&SD=SO&FR=1 http://support.microsoft.com/support/kb/articles/Q230/1/26.ASP
似乎是最新版本的Microsoft Jet数据库引擎
除非Borland数据库引擎,否则(JDE)不完全支持Paradox
(BDE)也已安装。
答案 2 :(得分:1)
尝试使用“以管理员身份运行”权限运行所有应用程序,尤其是使用“以管理员身份运行”运行VS.NET ...我确信您的问题得到解决
答案 3 :(得分:0)
这不是一个答案,而是一个问题:您尝试使用C#进行数据操作而不是使用SQL Server工具直接加载数据的任何特定原因?像DTS或SSIS这样的东西似乎是一个更好的工具。
答案 4 :(得分:0)
谢谢,我会试一试。我想使用C#,所以我可以将它放在一些网页上,而无需将其放在SQL服务器中。