В настоящее время я делаю программу для импорта значений из нескольких файлов dBase (.dbf). У меня уже есть список, полный строк с именами файлов dBase. Этот список называется FicheirosParaAnalisar
. Файлы dBase не всегда имеют одинаковые строки, но все они имеют одинаковые столбцы, заполненные значениями, которые я хочу получить из одного конкретного столбца с именем sigla_parametro
. Файлы dBase находятся в path9
Мой код сейчас выглядит примерно так:
private void button6_Click(object sender, EventArgs e)
{
///*
//Console.WriteLine(sigla_parametro);
try
{
parametro = comboBox12.Text; //Console.WriteLine(parametro);
for (int FA = 0; FA < FicheirosParaAnalisar.Count; FA++)
{
//Console.WriteLine(FicheirosParaAnalisar[FA]+".dbf");
if (importar == true)
{
//........................................................................
string connectionStringTotal = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path9 + ";Extended Properties=dBASE III;";
OleDbConnection connectionsTotal = new OleDbConnection(connectionStringTotal);
connectionsTotal.Open();
// Comando de aquisição dos dados da Base de Dados
string Comand_Strings_Total = "Select * From [" + FicheirosParaAnalisar[FA] + "]";
OleDbDataAdapter DataAdaptersTotal = new OleDbDataAdapter(Comand_Strings_Total, connectionsTotal);
DataSet datasetsTotal = new DataSet();
DataAdaptersTotal.Fill(datasetsTotal);
// Obter os valores dos parâmetros
int count = datasetsTotal.Tables[0].Rows.Count;
for (int i = 0; i < count; i++)
{
try
{
valores_parametro.Add(FicheirosParaAnalisar[FA] + "_" + datasetsTotal.Tables[0].Rows[i][sigla_parametro].ToString());
}
catch (System.Data.OleDb.OleDbException exe)
{
string text = "[MPA5 - " + DateTime.Now.ToString() + "] Excepção encontrada: " + exe.Message + "\n";
System.IO.File.AppendAllText(log, text);
}
catch (Exception lolex)
{
string text = "[MPA5 - " + DateTime.Now.ToString() + "] Excepção encontrada: " + lolex.Message + "\n";
System.IO.File.AppendAllText(log, text);
}
}
count = 0;
}
Console.WriteLine("Ficheiro nº " + FA + " Importado!");
}
}
catch (Exception ex)
{
string text = "[MPA5 - " + DateTime.Now.ToString() + "] Excepção encontrada: " + ex.Message + "\n";
System.IO.File.AppendAllText(log, text);
}
//*/
valores_parametro.ForEach(Console.WriteLine);
button1.Enabled = true;
}
Этот код выше вычисляется только в том случае, если я нашел все файлы dBase (в этом случае переменная importar
становится истинной). Теоретически я все делаю правильно, потому что файлы существуют, и я правильно назначил каждую переменную, но на самом деле у меня проблема в этом коде, потому что, когда я читаю все файлы dBase, некоторые файлы не могут быть прочитаны и исключения появляются, как я вижу в моем LogFile.txt
. Появляется следующее сообщение:
A first chance exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
Теперь я хочу спросить вас, экспертов из Stackoverflow в C #, что я делаю не так? Как мне перенести все данные из столбца sigla_parametro
в список строк valores_parametro
? Как я могу разрешить свое исключение?
Примечание: я также пытался использовать эту строку подключения
string connectionStringTotal = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path9 + ";Extended Properties=dBASE IV;";
Строка path9
- это путь к папке, содержащей все мои файлы dBase.
string path9 = "C:\\ProgramData\\CK electronic\\MPA5\\Data";
Список строк FicheirosParaAnalisar
имеет следующие строки:
CL-1831-150615-1
CL-1831-150615-2
CL-1831-150615-3
CL-1831-150615-4
CL-1831-150615-5
CL-1832-150611-1
CL-1832-150611-2
CL-1832-150611-3
CL-1832-150611-4
CL-1832-150611-5
CL-1833-150611-1
CL-1833-150611-2
CL-1833-150611-3
CL-1833-150611-4
CL-1833-150611-5
CL-1834-150611-1
CL-1834-150611-2
CL-1834-150611-3
CL-1834-150611-4
CL-1834-150611-5
CL-1835-150611-1
CL-1835-150611-2
CL-1835-150611-3
CL-1835-150611-4
CL-1835-150611-5
CL-1836-150612-1
CL-1836-150612-2
CL-1836-150612-3
CL-1836-150612-4
CL-1836-150612-5
CL-1837-150618-1
CL-1837-150618-2
CL-1837-150618-3
CL-1837-150618-4
CL-1837-150618-5
CL-1838-150611-1
CL-1838-150611-2
CL-1838-150611-3
CL-1838-150611-4
CL-1838-150611-5
CL-1839-150617-1
CL-1839-150617-2
CL-1839-150617-3
CL-1839-150617-4
CL-1839-150617-5
CL-1840-150611-1
CL-1840-150611-2
CL-1840-150611-3
CL-1840-150611-4
CL-1840-150611-5
CL-1841-150611-1
CL-1841-150611-2
CL-1841-150611-3
CL-1841-150611-4
CL-1841-150611-5
CL-1842-150611-1
CL-1842-150611-2
CL-1842-150611-3
CL-1842-150611-4
CL-1842-150611-5
CL-1843-150612-1
CL-1843-150612-2
CL-1843-150612-3
CL-1843-150612-4
CL-1843-150612-5
CL-1844-150616-1
CL-1844-150616-2
CL-1844-150616-3
CL-1844-150616-4
CL-1844-150616-5
CL-1844-150616-6
CL-1845-150615-1
CL-1845-150615-2
CL-1845-150615-3
CL-1845-150615-4
CL-1845-150615-5
CL-1846-150616-1
CL-1846-150616-2
CL-1846-150616-3
CL-1846-150616-4
CL-1847-150612-1
CL-1847-150612-2
CL-1847-150612-3
CL-1847-150612-4
CL-1847-150612-5
CL-1848-150612-1
CL-1848-150612-2
CL-1848-150612-3
CL-1848-150612-4
CL-1848-150612-5
CL-1850-150617-1
CL-1850-150617-2
CL-1850-150617-3
CL-1850-150617-4
CL-1850-150617-5
CL-1851-150616-1
CL-1851-150616-2
CL-1851-150616-3
CL-1851-150616-4
CL-1851-150616-5
CL-1852-150612-1
CL-1852-150612-2
CL-1852-150612-3
CL-1852-150612-4
CL-1852-150612-5
CL-1853-150616-1
CL-1853-150616-2
CL-1853-150616-3
CL-1853-150616-4
CL-1853-150616-5
CL-1854-150615-1
CL-1854-150615-2
CL-1854-150615-3
CL-1854-150615-4
CL-1854-150615-5
CL-1855-150616-1
CL-1855-150616-2
CL-1855-150616-3
CL-1855-150616-4
CL-1855-150616-5
CL-1856-150615-1
CL-1856-150615-2
CL-1856-150615-3
CL-1856-150615-4
CL-1856-150615-5
CL-1857-150616-1
CL-1857-150616-2
CL-1857-150616-3
CL-1857-150616-4
CL-1857-150616-5
CL-1858-150618-1
CL-1858-150618-2
CL-1858-150618-3
CL-1858-150618-4
CL-1858-150618-5
CL-1860-150618-1
CL-1860-150618-2
CL-1860-150618-3
CL-1860-150618-4
CL-1860-150618-5
CL-1861-150618-1
CL-1861-150618-2
CL-1861-150618-3
CL-1861-150618-4
CL-1861-150618-5
CL-1862-150618-1
CL-1862-150618-2
CL-1862-150618-3
CL-1862-150618-4
CL-1862-150618-5
CL-1863-150618-1
CL-1863-150618-2
CL-1863-150618-3
CL-1863-150618-4
CL-1863-150618-5
Очень важно сообщить вам, что у меня есть разрешение администратора на чтение и запись данных в папке!