Я работаю над программой C #, которая будет читать файлы DBF и импортировать таблицы в базу данных MySQL. Я могу получить каталог, в котором находятся все файлы DBF, и прочитать большинство файлов DBF. Проблема в том, что 2 из 17 файлов DBF вызовут исключение с myDataAdapter.Fill (myDataSet);
Вот мой код:
private void button2_Click(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(Regex.Replace(textBox1.Text, @"\\", @"\\"));
string strAccessConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dir + ";Extended Properties=dBase III";
DataSet myDataSet = new DataSet();
OleDbConnection myAccessConn = null;
try
{
myAccessConn = new OleDbConnection(strAccessConn);
}
catch (Exception ex)
{
Console.WriteLine("Error: Failed to create a database connection. \n{0}", ex.Message);
return;
}
foreach (FileInfo file in dir.GetFiles())
{
MessageBox.Show(file.Name.Substring(0, file.Name.Length - 4));
string strAccessSelect = "SELECT * FROM " + file.Name.Substring(0, file.Name.Length - 4);
OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
myAccessConn.Open();
myDataAdapter.Fill(myDataSet);
myAccessConn.Close();
}
MessageBox.Show("End");
}
Это сообщение об ошибке:
Необработанное исключение типа System.Data.OleDb.OleDbException произошло в System.Data.dll
Дополнительная информация: ядру базы данных Microsoft Jet не удалось найти объект SomeFile. Убедитесь, что объект существует и вы правильно написали его имя и путь.
Чем это вызвано? Я распечатал dir, file.name и strAccessSelect, и все выглядит правильно.
Любая помощь будет принята с благодарностью, спасибо!
--ОБНОВИТЬ--
Я проверил права доступа к файлам, и у каждого пользователя есть полные права.
Не уверен, насколько это поможет, но иногда, когда я переименовываю файл (например, SomeFile1), он работает, и я не получаю сообщения об ошибке ... В большинстве случаев это не сработает.
strAccessSelect
- person Steve   schedule 22.01.2014