1

我正在尝试将 Paradox 5 表读入数据集或类似数据结构,并将其放入 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 Driver] 外部表不是预期的格式。

我也厌倦了 OELDB (Jet 4.0) 但得到相同的 External table is not in the expected format 错误。

我在 Data 文件夹中有 DB 文件和 PX(增长表的)......任何帮助都会非常有用。

4

5 回答 5

3

我有同样的错误。它出现在我在 Win2008 64(以前的操作系统是 Win2003 32)上启动我的 C# 项目时。我还发现它在控制台应用程序中运行良好,并在 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();
}

之后,您可以在执行应用程序期间每次需要打开和关闭连接,并且不会出现任何异常。

于 2012-12-13T04:35:32.663 回答
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 数据库引擎

(JDE) 不完全支持 Paradox,除非 Borland 数据库引擎

(BDE) 也已安装。

于 2008-11-20T11:46:54.697 回答
1

尝试以“以管理员身份运行”权限运行所有应用程序,尤其是以“以管理员身份运行”权限运行 VS.NET ......我相信你的问题会得到解决

于 2011-10-14T06:50:43.907 回答
0

这不是答案,而是更多的问题:您尝试使用 C# 进行数据操作而不是使用 SQL Server 工具直接加载数据的任何特定原因?DTS 或 SSIS 之类的东西似乎是完成这项工作的更好工具。

于 2008-11-20T16:23:36.153 回答
0

谢谢,我试试看。我想使用 C#,这样我就可以将它放在一些网页上,而无需额外将它放在 SQL 服务器中。

于 2008-11-24T11:25:41.260 回答