Visual Basic.NET - Interceptar un valor nulo en una suma

 
Vista:
sin imagen de perfil

Interceptar un valor nulo en una suma

Publicado por Alberto (26 intervenciones) el 26/12/2021 16:39:57
Quiero sumar un campo de una tabla y pongo en el código para determinar los registros quhan cumplido la condición de StrSql
Dim iTotal As Integer = Me.DataGridView1.Rows.Count
Y luego en la orden para sumar:
For i = 0 To iTotal - 1
total = total + Double.Parse(Me.DataGridView1(4, i).Value)
(4 la columna , vamos la 5 visual) es la que quiero sumar
Next
Si pongo -1 me da un error Argument Null Exception. No puede ser nulo, y me aparece que las sumas están bien hechas pero (Me.DataGridView1(4, i).Value) me aparece como nulo. Para interceptar este error he entrado lo que pongo a continuación, pero no lo intercepta y da el mensaje de error como si no hubiera escrito nada
For i = 0 To iTotal - 1
If (Not String.IsNullOrEmpty("Me.DataGriedView3(3,1).(Value)")) Then
' Not null or empty
TotalAmg = TotalAmg + Double.Parse(Me.DataGridView3(3, i).Value)
Else
TotalAmg = TotalAmg
End If
Next
TextTotalAmg.Text = TotalAmg
¿Qué debo hacer para interceptar este error? Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Interceptar un valor nulo en una suma

Publicado por Alberto (26 intervenciones) el 26/12/2021 19:26:56
Solucionado con Try. Estos nuevos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Interceptar un valor nulo en una suma

Publicado por Phil Rob (1554 intervenciones) el 26/12/2021 20:02:24
Hola Alberto,

Try es una mala solución por este caso.

Debes escribir -2 y no -1. La razón es que tu DGV tiene una linea vacia.
Es posible de cambiar este detalle con :
ElDataGridView.AllowUserToAddRow=False
Tiene que escribir esta línea en el procedimiento Form_load.

Si no funciona, dice me y haré un ejemplo mañana.

Buenas noches :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar