目前我正在製作一個程序來從多個dBase文件(.dbf)導入值。我已經有一個充滿字符串的列表,它具有dBase文件的名稱。該列表被命名爲FicheirosParaAnalisar
。 dBase文件並不總是具有相同的行,但它們具有所有相同的列,並且我想從一個名爲sigla_parametro
的特定列中獲得相同的值。與dBASE filse在path9
我的代碼現在是這樣的:關於閱讀C#中的多個.dbf文件
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
現在我想問問你在C#中的Stackoverflow的專家,我做錯了什麼?我怎樣才能從列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
這是要告訴你,我有管理員permition閱讀,文件夾中寫入數據的關鍵!
請參閱我的回答下面你的問題,因爲它是太長了評論:) – user3664117
@ user3664117,修訂後的我的答案...在未來,而不是發佈一個答案你自己的問題澄清,你可以隨時編輯您的原始帖子,並添加到你的答案的細節內容。下面。 – DRapp
我很抱歉我的回答DRapp,我是這個社區的新手。我會嘗試你的解決方案。謝謝隊友:) – user3664117