none
no consigo que si no tiene dato value no lo sume RRS feed

  • Pregunta

  • Buenas tengo este problema que es cuando va sumando las filas del datagridview y llega a una que no tiene datos me lanza este error

    Gracias 

     Dim Lupulos_row As DataGridViewRow = DGV_Lupulos.CurrentRow 'Mira de que dgvs no este vacio
            If Lupulos_row IsNot Nothing Then 'Mira de que dgv no este vacio
                ' ''If Lupulos_row.Cells(5).Value Is Nothing Then
                ' ''    Exit Sub
                ' ''Else
                Dim sumaIBUS As Decimal = DGV_Lupulos.Rows.Cast(Of DataGridViewRow).Sum(Function(x) Convert.ToDecimal(x.Cells(5).Value)) 'SUMA IBUS
                LabelX40.Text = sumaIBUS
                TextBox10.Text = sumaIBUS
                ' ''End If
            Else

    domingo, 12 de julio de 2020 17:09

Todas las respuestas

  • El error que te sale de FormatException ocurre cuando el Convert.ToDecimal encuentra que el valor a convertir es cualquier cosa que no se reconoce como Decimal. Por ejemplo, una cadena vacía daría ese error. En el código que tienes entre comentarios compruebas que no sea Nohing, pero eso no sería suficiente. Podría no ser Nothing y sin embargo ser una cadena vacía, y eso también ocasionaría el error. Espero que tengas clarísimo que nothing y cadena vacía son dos cosas completamente diferentes.

    Podrías tratar de meter varios "If" para controlar todos los posibles valores de Cells(5) que darían lugar a Decimal no válidos, pero se te va a complicar mucho. En su lugar, te recomiendo otra alternativa: utliza Decimal.TryParse en lugar de Convert.ToDecima. El TryParse te devuelve un booleano que te dice si la conversión es válida o no, en lugar de dar un error.

    If Lupulos_row.Cells(5).Value Is Nothing Then
        Exit Sub
    End If
    
    Dim valorDeLaCelda As Decimal
    Dim ok as Boolean = Decimal.TryParse(Lupulos_row.Cells(5).Value.ToString(), valorDeLaCelda)
    If Not ok Then
        Exit Sub
    End If
    
    ' Llegados aquí, valorDeLaCelda contiene un valor correcto



    domingo, 12 de julio de 2020 19:47