OLEDB を使用して、ある Excel ファイルから情報を読み取り、別のファイルに別の形式で出力しています。最初の Excel ファイルで実行されたクエリは正しく返されますが、2 番目のファイルで挿入クエリを実行しようとすると、connection.Open() が呼び出されると vshost32.exe がクラッシュします。作成時に OleDBConnection の ServerVersion に InvalidOperationException がスローされます。これは、有効なバージョン番号に変更され、接続で Open() が呼び出されると状態が Closed から Open に変わるため、正常であると想定しています。
これが私が使用しようとしている接続文字列です。最初のものは最初の Excel ファイルに使用され、次のものは出力への書き込みに使用されます。唯一の識別可能な違いは、2 番目の文字列に「ReadWrite」モードが追加されたことです。また、拡張プロパティで「Excel 8.0」を「Excel 12.0」に変更してみました。
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
inputFile + ";Extended Properties=\"Excel 8.0;HDR=YES;\"";
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
outputFile + ";Mode=ReadWrite;Extended Properties=\"Excel 8.0;HDR=YES;\"";