c# - C# 中的悖论表

标签 c# odbc paradox

我正在尝试将 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;
}

这只是返回错误

ERROR [HY000] [Microsoft][ODBC Paradox Driver] External table is not in the expected format.

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

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

最佳答案

我遇到了同样的错误。当我在 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();
}

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

关于c# - C# 中的悖论表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/304996/

相关文章:

c# - Log4Net 动态日志记录文件夹路径异常

php - 通过命令行获取 Windows 7 ODBC 数据源列表

sql - 尝试在 ubuntu 中使用 RODBC 连接到 ODBC 服务器

mysql - 读取 Paradox 数据库文件

java - 使用 Java 读取 Paradox 数据库时出现编码问题

c# - 是否可以在 .Net 应用程序中读取 Paradox 7.x .db 文件?

c# - StringDictionary 类和 Dictionary<String,String> 之间有区别吗

c# - 保存 Canvas 绘图

c# - Parse 诉 TryParse

c# - C# 中的 MySQL 转换