none
Problemas con los tipos de datos al hacer un sum RRS feed

  • Pregunta

  • Hola a todos,

    Al hacer un for each de una datetable (con origen de un excel) necesito hacer un sum de un campo determinado con unos criterios concretos.

    Todo va bien, menos cuando hay un error en la columna de importe por haber introducido un dato con formato incorrecto.

    Concretamente, si el importe es 123'33 da error por no ser 123,33

    La parte problemática está en negrita y el lugar concreto de la instrucción da justo en la parte subrayada

    tablaAux.AsEnumerable().Where(Function(row) row.Field(Of String)(4) = variable.ToString And row.Field(Of String)(0).ToString.Replace(" ","") = tipo.ToString).Sum(Function(row) If(Double.TryParse(row.Field(Of String)(7), aux), If (row.Field(Of Double?)(7) Is Nothing, 0,row.Field(Of Double)(7)) ,0))

    Lo primero que hago es un intento de parseo a double, si lo hace bien, miro si es notohing y si todo va bien cojo el valor sino devuelve 0, tanto si no se puede convertir como si es nothing. 

    El problema es que la parte subrayada Double.TryParse(row.Field(Of String)(7), aux) of string me da error de cast cuando el dato está bien (es double), y va bien (me devuelve 0), cuano es string o no puede convertir correctamente.

    Lo mismo pasa al contrario. Si lo cambio Double.TryParse(row.Field(Of Double)(7), aux), me funciona si el dato está bien y me da error de cast si se encuentra con un dato mal metido

    Alguien tiene alguna idea?

    Muchas gracias a todos!

    martes, 20 de noviembre de 2018 18:50

Respuestas

  • Hola  Alex García Zubia

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que nos encontramos realizando la revisión del inconveniente que presentas.

    Te daremos una respuesta a la brevedad posible.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    • Propuesto como respuesta Pablo Rubio jueves, 22 de noviembre de 2018 17:29
    • Marcado como respuesta Pablo Rubio lunes, 26 de noviembre de 2018 18:30
    martes, 20 de noviembre de 2018 19:02