Я прочитал об этой ошибке, но не знаю, как исправить.Краткий обзор автоматизации:
Я получил файл из приложения в формате .txt, содержащий HTML-теги.
Iнеобходимо преобразовать этот файл в csv и изменить некоторые заголовки, прежде чем передать его в конечный пункт назначения.
, чтобы упростить это, я подключаюсь к текстовому файлу через OleDB
Я получаю эту ошибку, возможно, на 1% файлов, обработанных сотнями файлов, обработанных до сих пор.
Я сегментировал код для запускатолько это, чтобы устранить другие потенциальные ошибки в коде.
- Я добавил ниже, чтобы позволить ему попасть в процесс обработки ошибок, но ошибка остается, когда я пытаюсь переместить файл к ошибкепапка журнала.
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute ()]
Любая помощь очень полезна.
Вот фрагмент кода.
public static void ConvertExcelToCsv(string excelFilePath, string csvOutputFile, string fileExtType, int worksheetNumber = 1, bool SQLDataInsert = false)
{
switch (fileExtType)
{
case ".txt":
cnnStr = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"HTML Import;IMEX=1;HDR=NO\"", excelFilePath);
break;
default:
cnnStr = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO\"", excelFilePath);
break;
}
var cnn = new OleDbConnection(cnnStr);
var dt = new DataTable();
try
{
cnn.Open(); // fails here
string worksheet = schemaTable.Rows[worksheetNumber - 1]["table_name"].ToString().Replace("'", "");
string sql = String.Format("select * from [{0}]", worksheet);
var da = new OleDbDataAdapter(sql, cnn);
da.Fill(dt);
}
catch (Exception e)
{
cnn.Dispose();
GeneralFunctions.DisplayTextConsole("Error received trying to process File: " + excelFilePath.ToString(), ConsoleColor.Red, ConsoleColor.White, false);
File.Move(excelFilePath, Constant._ErrorFileDir + @"\" + Path.GetFileName(ErrFileName));
}
}