none
Validación item sin contenido de coleccion RRS feed

  • Pregunta

  • Hola chivos buen día. Tengo un error en una aplicación que estoy construyendo pero no se como arreglarlo; he estado buscando e incluyendo si el contenido del ítem de la colección no contiene nada para que no haga la conversión a int. La aplicación me funciona a la perfección cuando la colección contiene información en el campo anaquelProducto, pero cuando no contine información me marca error. Les incluyo el código que tengo. 

    el campo anaquelProducto puede contener valores numéricos, valores alfanuméricos y sin información.

    Les presento mi código:

                                if (item.anaquelProducto.Any(x => !char.IsNumber(x)))
                                    {
                                        dgvProductos.Rows[renglon].Cells[4].Value = item.anaquelProducto;
                                    }
                                  else
                                    {
                                            if (Convert.ToInt32(item.anaquelProducto)>0 && item.anaquelProducto!=null && item.anaquelProducto!="")
                                            {
                                                dgvProductos.Rows[renglon].Cells[4].Value = String.Format("{0:D2}", Convert.ToInt32(item.anaquelProducto));
                                            }
                                        
                                    }

    Cuando el campo anaquelProducto no contiene información: me marca error en la línea de validación:

    if (Convert.ToInt32(item.anaquelProducto)>0 && item.anaquelProducto!=null && item.anaquelProducto!="")

    Muchas gracias por su valioso apoyo. Saludos cordiales

    miércoles, 21 de agosto de 2019 16:12

Todas las respuestas

  • hola

    Pero esa propiedad "anaquelProducto" de que tipo es ? si estas usando el Any() es una lista, entonces convertir a int no tiene sentido salvo que quieras evaluar la cantidad de items para lo cual usas

    if(item.anaquelProducto != null && item.anaquelProducto.Count > 0){

    }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 21 de agosto de 2019 16:37
  • Hola Leandro.

    Esta es la propiedad:

    public string repisaProducto { get; set; }

    repisaProducto es la repisa en la que se encuentra un producto. en teoría sólo debe tener números(01,02, etc), pero el usuario en ocasiones le coloca letras , números sin el formato requerido(formato requerido: 01,02,03,10,20,13,43), pero en ocasiones a los números de 1 dígito no le anteponen el cero(0) y lo que estoy buscando es que los que sean números los convierta al formato requerido de 2 dígitos(de 1 a 01, y así), por eso es mi validación if (item.anaquelProducto.Any(x => !char.IsNumber(x))).

    Pero cuando el campo está vacío me marca error con esta función. 

    Gracias

    miércoles, 21 de agosto de 2019 17:07
  • >>Esta es la propiedad:

    porque mencionas repisaProducto si en el planteo original mencionas anaquelProducto ? no mencionas que tipo de dato es anaquelProducto, si usa el any no es un string

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 21 de agosto de 2019 17:12