У меня была такая же ошибка. Он появился, когда я запустил свой проект C # на Win2008 64 (предыдущая ОС была Win2003 32). Также я узнал, что он хорошо работает в консольных приложениях и выдает различные ошибки в winforms. Похоже, что проблема связана со спецификой 32 драйверов ODBC, работающих на 64-битных системах.
Мое решение было:
// 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();
}
После этого вы можете открывать и закрывать соединение каждый раз, когда захотите во время выполнения вашего приложения, и вы не получите никаких исключений.