Saltar al contenido

En CsvHelper, ¿cómo detectar un error de conversión y saber en qué campo y en qué fila sucedió?

Este equipo de trabajo ha estado mucho tiempo buscando soluciones a tu pregunta, te dejamos la solución de modo que deseamos servirte de gran ayuda.

Solución:

Actualmente, no hay forma de ignorar los errores a nivel de campo/propiedad. Sus opciones actuales son estas:

Mire los datos de excepción.

catch( Exception ex )

    // This contains useful information about the error.
    ex.Data["CsvHelper"];

Ignorar las excepciones de lectura. Sin embargo, esto es a nivel de fila, no de campo. Permitirá que se lea todo el archivo y simplemente ignorará las filas que no funcionan. Puede obtener una devolución de llamada cuando se produce una excepción.

csv.Configuration.IgnoreReadingExceptions = true;
csv.Configuration.ReadingExceptionCallback = ( ex, row ) =>

    // Do something with the exception and row data.
    // You can look at the exception data here too.
;

En primer lugar, parece que necesito capturar CsvTypeConverterException.

 while (csv.Read())
    
       try
           
          var record = csv.GetRecord();    
       
       catch (CsvTypeConverterException ex)
       
         //ex.Data.Values has more info...
       
    

Ahora sé cómo investigar qué salió mal, pero ¿cómo me aseguro de que ese campo se omita pero el resto de los campos de esa fila se conviertan, de modo que no se deseche toda la fila?

Gracias

Reseñas y puntuaciones del tutorial

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *