В производственной системе мы ИНОГДА получаем сообщение об ошибке ниже при чтении excel в datatable (тот же код, тот же файл не будет работать сегодня, но будет работать в другой день).
System.Data.OleDb.OleDbException (0x80004005): неверный аргумент. System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) в System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) в System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) в System.Data.OleDb .OleDbCommand.ExecuteCommand (поведение CommandBehavior, Object& executeResult) в System.Data.OleDb.OleDbCommand.ExecuteReaderInternal (поведение CommandBehavior, метод String) в System.Data.OleDb.OleDbCommand.ExecuteReader (поведение CommandBehavior) в
System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader (поведение CommandBehavior) в System.Data.Common.DbDataAdapter.FillInternal (набор данных DataSet, таблицы данных DataTable [], Int32 startRecord, Int32 maxRecords, String srcTable, команда IDbCommand, поведение CommandBehavior) в System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, команда IDbCommand, поведение CommandBehavior) в System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
Но проблема в том, что на рабочем сервере сегодня работает хорошо, а завтра или послезавтра не будет работать, а потом снова начнет работать хорошо.
Ниже приведен код.
string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + readFilePath + ";Extended Properties=\"Excel 12.0;\"";
ExcelConnection = new OleDbConnection(ConnectionString);
string ExcelQuery = "Select FORMAT(SAMPDATE,'dd/MM/yyyy') as SAMPDATE,FORMAT(LANDED_ON,'dd/MM/yyyy') as LANDED_ON,FORMAT(RECDATE,'dd/MM/yyyy') as RECDATE,* from [Sheet1$]";
ExcelCommand = new OleDbCommand(ExcelQuery, ExcelConnection);
ExcelConnection.Open();
ExcelAdapter = new OleDbDataAdapter(ExcelCommand);
ExcelAdapter.Fill(dtbExcelData);
ExcelConnection.Close();
Я также проверил правильность значения переменной readFilePath, например, значение D:\Cop\Web\ABC\PAL\FIleUploaded\ER01.xls.
Я не уверен, почему точно такой же код не позволяет загружать тот же документ Excel, но на следующий день тот же код и тот же файл работает без проблем. Кто-нибудь может мне помочь?
Desktop
в расположении `C:\Windows\SysWOW64\config\systemprofile` и сообщить мне через пару дней, если это решило вашу проблему. - person Franck Ngako   schedule 23.11.2017