Как узнать, какие столбцы имеют недопустимое значение - PullRequest
0 голосов
/ 29 января 2019

Я использую CsvHelper для анализа CSV-файлов, включая преобразование типов, например, в DateTime.

Когда значение ячейки имеет недопустимый формат, я получаю

while (CsvReader.Read())
{
    var record = CsvReader.GetRecord<TModel>();
    csvReader.GetRecord<MyModel>(); //throws following exception:

    // CsvHelper.ReaderException: 'An unexpected error occurred.'
    // Inner Exception
    //
    // FormatException: The string 'a' was not recognized as a valid DateTime. There is an unknown word starting at index '0'.

Как мне найтиHeaderName ячейки или свойство MyModel, которое не удалось проанализировать.

1 Ответ

0 голосов
/ 29 января 2019

Вы должны добавить попытку, и в вашем улове вы можете получить строку и индекс, используя

int index = csvReader.Context.CurrentIndex; // zero based
int row = csvReader.Context.Row;          // 1 based

Затем вы можете получить свое поле, используя запись заголовков

csvReader.Context.HeaderRecord[index]
...