2016-06-21 106 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);