2016-06-21 11 views
0

Mein Projekt ist es, einige Attribute aus einem Ordner mit MDB in .csv-Dateien zu extrahieren. Alle Funktionen werden ordnungsgemäß verarbeitet, aber ich habe ein Problem mit dem ConnectionString.OleDbConnection ConnectionString, Problem beim Öffnen mehrerer Dateien

Wenn es zum ersten Mal ausgeführt wird, öffnet es die Verbindung für die erste Datei im Ordner und extrahiert die .csv-Datei und schließt die Verbindung. Alles gut bis jetzt.

Danach, wenn es für die zweite Datei im Ordner geht, öffnet es irgendwie wieder die ConnectionString für die erste Datei, aber die Funktion ruft die zweite .mdb-Datei. Wie kann ich die zweite Datei öffnen lassen?

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

Was ist die Fehlermeldung, wenn 'cn.Open()' zum zweiten Mal ausgeführt wird? –

+0

Der Ordner enthält Thesen Dateien: 27001DX.mdb 27002DX.mdb die Fehlermeldung: Die Microsoft Jet-Datenbankmodul die Eingabetabelle oder Abfrage ‚27002DX‘ nicht finden kann. Stellen Sie sicher, dass es existiert und dass der Name richtig geschrieben ist. – athanikos

+0

Wenn zum zweiten Mal ausführen, Haltepunkte verwenden, \t \t cn.ConnectionString \t "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C: \\ mdb \\ 27001DX.mdb" tname \t „C: \ \ mdb \\ 27002DX.mdb "\t String – athanikos

Antwort

1

Wie @ steve16351 hingewiesen, müssen Sie die Verbindungszeichenfolge wie folgt ändern:

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