FileHelpers.ConvertException с использованием формата дд / мм / гг чч: мм - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть столбец в CSV со значением: 14/04/20 09: 44

FECHA_FRANQUEO | ID_INCIDENCIA | CIF | PERSONA_CONTACTO
14/04/20 09: 44 | 7093927 | bbbbbbbbb | RAFA
14/04/20 09: 02 | 7093933 | aaaaaaaaa | Мария / Роджер

Я использую FileHelpers в C# для чтения файла CSV.

[Serializable]
[FileHelpers.DelimitedRecord("|")]
public partial class ArchivoCliente
{
    [FileHelpers.FieldHidden]
    public int Indice { get; set; } // int, not null

    [FileHelpers.FieldConverter(FileHelpers.ConverterKind.Date, "dd/MM/yy HH:mm")] // "dd'/'MM'/'yyyy"
    public DateTime FECHA_FRANQUEO { get; set; } // datetime2(7), not null
    public string ID_INCIDENCIA { get; set; } // nvarchar(7), not null

    public string CIF { get; set; } // nvarchar(9), not null
    public string PERSONA_CONTACTO { get; set; } // nvarchar(50), not null

}

Я получаю сообщение об ошибке:

FileHelpers.ConvertException: Ошибка преобразования «FECHA_FRANQUEO» в тип: «DateTime». Используя формат: 'дд / мм / гг чч: мм'

Я использую

  [FileHelpers.FieldConverter(FileHelpers.ConverterKind.Date, "dd/MM/yy HH:mm")] // "dd'/'MM'/'yyyy"
  public DateTime FECHA_FRANQUEO { get; set; } // datetime2(7), not null

или

[FileHelpers.FieldConverter(FileHelpers.ConverterKind.DateMultiFormat, "dd'/'MM'/'yy HH:mm", "dd/'MM/yy HH:mm")] // "dd'/'MM'/'yyyy"
public DateTime FECHA_FRANQUEO { get; set; } // datetime2(7), not null

Этот код работает:

        var ff = "14/04/20 09:44";
        var dt = DateTime.ParseExact(ff, "dd/MM/yy HH:mm", CultureInfo.InvariantCulture);

Есть предложения?

1 Ответ

0 голосов
/ 23 апреля 2020

[FileHelpers.IgnoreFirst (1)] для игнорирования первой строки.

[Serializable]
[FileHelpers.DelimitedRecord("|")]
[FileHelpers.IgnoreFirst(1)]
public partial class ArchivoCliente
{
    [FileHelpers.FieldHidden]
    public int Indice { get; set; } // int, not null

    public string COMUN_COD_FORMULARIO { get; set; } // nvarchar(30), not null

    [FileHelpers.FieldConverter(FileHelpers.ConverterKind.Date, "dd/MM/yyyy")] // "dd'/'MM'/'yyyy"
    public DateTime COMUN_FECHA_FRANQUEO { get; set; } // datetime2(7), not null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...