2016-06-21 43 views
0

我的項目是從.mdb文件夾中提取一些屬性爲.csv文件。所有的功能都正確處理,但我有ConnectionString的問題。OleDbConnection ConnectionString,打開多個文件時出現問題

第一次運行時,它會打開文件夾中第一個文件的連接並提取.csv文件並關閉連接。迄今爲止都很好。

之後,當它轉到文件夾中的第二個文件時,它以某種方式再次打開第一個文件的ConnectionString,但該函數調用第二個.mdb文件。我怎樣才能打開第二個文件?

static void Main() 
{ 
    CreateFolder(); 

    string dst_fld = @"C:\csv\AllCsvFiles"; 
    string src_fld = @"C:\mdb"; 
    string dst_ext = ".mdb"; 

    string[] mdb_array = Directory.GetFiles(src_fld, "*" + dst_ext, SearchOption.TopDirectoryOnly); // Get all mdb files from a folder 

    OleDbConnection cn = new OleDbConnection(); 

    foreach (string tname in mdb_array) 
    { 
     cn.ConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}",mdb_array); 

     try 
     { 
      cn.Open(); // open the connection 
      ExportFunction(cn, tname, dst_fld); // call function for export the csv file 
     } 
     finally 
     { 
      cn.Close(); 
     } 
    } 

    GetCSVFiles(); 
    DeleteFF(); 
} 
+0

什麼是錯誤消息時'cn.Open()'執行第二次? –

+0

該文件夾包含論文文件: 27001DX.mdb 27002DX.mdb 錯誤消息: Microsoft Jet數據庫引擎找不到輸入表或查詢「27002DX」。確保它存在並且它的名稱拼寫正確。 – athanikos

+0

當第二次運行時,使用斷點,\t \t cn.ConnectionString \t 「提供者= Microsoft.Jet.OLEDB.4.0;數據源= C:\\ MDB \\ 27001DX.mdb」 TNAME \t「C:\ \ mdb \\ 27002DX.mdb「\t字符串 – athanikos

回答

1

正如指出的@ steve16351,您需要更改連接字符串如下:

cn.ConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", tname);