0
私のプロジェクトでは、.mdbのあるフォルダから.csvファイルにいくつかの属性を抽出しています。すべての関数が正しく処理されていますが、ConnectionStringに問題があります。OleDbConnection ConnectionString複数のファイルを開くときに問題が発生する
初めて実行すると、フォルダ内の最初のファイルの接続が開き、.csvファイルが抽出され、接続が閉じられます。これまでのすべての良い。
その後、フォルダ内の2番目のファイルに移動すると、何らかの方法で最初のファイルのConnectionStringが再び開きますが、関数は2番目の.mdbファイルを呼び出します。どのようにして2番目のファイルを開くことができますか?
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();
}
'cn.Open()は、'二度目の実行時にエラーメッセージは何ですか? –
フォルダには、論文のファイルが含まれています。 27001DX.mdb 27002DX.mdb エラーメッセージ: Microsoft Jetデータベースエンジンは、入力テーブルまたはクエリ「27002DX」を見つけることができません。それが存在し、その名前が正しく綴られていることを確認してください。 – athanikos
ブレークポイントを使用して、二度目の実行、\t \t cn.ConnectionString \t "プロバイダ= Microsoft.Jet.OLEDB.4.0;データソース= C:\\ MDB \\ 27001DX.mdb" TNAME \t「C:\ \ mdb \\ 27002DX.mdb "\t文字列 – athanikos