C#中的悖论表

时间:2008-11-20 11:20:22

标签: c# odbc paradox

我正在尝试将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(增长表)...任何帮助都会非常适合。

5 个答案:

答案 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服务器中。