Visual Basic.NET - Problema de esos existenciales con sumas acumulativas

 
Vista:
Imágen de perfil de Rodrigo Fernando
Val: 4
Ha aumentado su posición en 12 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema de esos existenciales con sumas acumulativas

Publicado por Rodrigo Fernando (3 intervenciones) el 25/09/2018 22:22:05
Buen (inserte aquí el horario en que leyó esto) amigos. hoy vengo con un problema raro. Resulta que estoy sumando datos de un datagrid y lo que el usuario decida poner en unos textbox (función que se activa al apretar un Button el cual mostrará la suma de lo que uno puso en un datagrid diferente en la misma ventana). Comienza el problema cuando voy a hacer una segunda suma. Problemas como:

1) Si yo no pongo nada, debiera dejar el número tal cual, pero los suma igual (es decir, si uno de los datos dice 12 y en la primera suma agregué 1 y en la segunda suma no pongo nada, en vez de ser 13 suma 12+13).

2) He intentado poner la suma dentro de un For Each pero al hacer ésto simplemente la aplicación se buggea (lo que no es una buena idea si estoy accionando la función con un Button).

Adjunto el código abajito. Cualquier cosa (no importa si no tienen respuesta, con que lo vean también me ayuda), gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 As New Decimal
 
 
1 = CDbl(txt1.Text)
2 = CDbl(txt2.Text)
3 = CDbl(txt3.Text)
4 = CDbl(txt4.Text)
5 = CDbl(txt5.Text)
6 = CDbl(txt6.Text)
7 = CDbl(txt7.Text)
8 = CDbl(txt8.Text)
9 = CDbl(txt9.Text)
10 = CDbl(txt10.Text)
 
'La numeracion no esta mala. Las columnas anteriores a la primera tienen encabezados.
 
txt1.Text = 1 + Val(dtDatos.Rows(0).Cells(2).Value.ToString)
txt2.Text = 2 + Val(dtDatos.Rows(0).Cells(3).Value.ToString)
txt3.Text = 3 + Val(dtDatos.Rows(0).Cells(4).Value.ToString)
txt4.Text = 4 + Val(dtDatos.Rows(0).Cells(5).Value.ToString)
txt5.Text = 5 + Val(dtDatos.Rows(0).Cells(6).Value.ToString)
txt6.Text = 6 + Val(dtDatos.Rows(0).Cells(7).Value.ToString)
txt7.Text = 7 + Val(dtDatos.Rows(0).Cells(8).Value.ToString)
txt8.Text = 8 + Val(dtDatos.Rows(0).Cells(9).Value.ToString)
txt9.Text = 9 + Val(dtDatos.Rows(0).Cells(10).Value.ToString)
txt10.Text = 10 + Val(dtDatos.Rows(0).Cells(11).Value.ToString)

:8)
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema de esos existenciales con sumas acumulativas

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 26/09/2018 17:57:58
Tu problema no es existencial no nada de eso.

El tema es que estás pretendiendo declarar variables con número, y un 1(uno) es y será un 1.
Porque no le pones como nombre a tus variables UNO o PRIMERO?.

Si tratas de sumar un 1 que crees que sumará?, si defines una variable como 1 y le asignas 10, cuando vayas a sumar 1(10) + 2 que resultado crees que obtendrás?.

Revisa eso primero y olvídate de los problemas existenciales.

Saludos cordiales,
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 Rodrigo Fernando
Val: 4
Ha aumentado su posición en 12 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema de esos existenciales con sumas acumulativas

Publicado por Rodrigo Fernando (3 intervenciones) el 26/09/2018 18:09:27
Hola Wilfredo:

Primero, gracias por contestar. Segundo, hice el cambio que me comentas y sigue sin funcionar. Mando código. Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 As New Decimal
 
 
v1 = CDbl(txt1.Text)
v2 = CDbl(txt2.Text)
v3 = CDbl(txt3.Text)
v4 = CDbl(txt4.Text)
v5 = CDbl(txt5.Text)
v6 = CDbl(txt6.Text)
v7 = CDbl(txt7.Text)
v8 = CDbl(txt8.Text)
v9 = CDbl(txt9.Text)
v10 = CDbl(txt10.Text)
 
'La numeracion no esta mala. Las columnas anteriores a la primera tienen encabezados.
 
txt1.Text = v1 + Val(dtDatos.Rows(0).Cells(2).Value.ToString)
txt2.Text = v2 + Val(dtDatos.Rows(0).Cells(3).Value.ToString)
txt3.Text = v3 + Val(dtDatos.Rows(0).Cells(4).Value.ToString)
txt4.Text = v4 + Val(dtDatos.Rows(0).Cells(5).Value.ToString)
txt5.Text = v5 + Val(dtDatos.Rows(0).Cells(6).Value.ToString)
txt6.Text = v6 + Val(dtDatos.Rows(0).Cells(7).Value.ToString)
txt7.Text = v7 + Val(dtDatos.Rows(0).Cells(8).Value.ToString)
txt8.Text = v8 + Val(dtDatos.Rows(0).Cells(9).Value.ToString)
txt9.Text = v9 + Val(dtDatos.Rows(0).Cells(10).Value.ToString)
txt10.Text = v10 + Val(dtDatos.Rows(0).Cells(11).Value.ToString)

:8)
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 Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Problema de esos existenciales con sumas acumulativas

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 26/09/2018 21:42:13
Los problemas continúan

Fíjate si quiero declarar una variable decimal, definiría mas o menos así:

dim mivariable as decimal

Y al asignarle valores lo haría sabiendo que tienen datos, sino primero verifico si hay datos.

mivariable=Convert.ToDecimal(text1.text)

Luego podría decir:

mivariable=mivariable + convert.ToDecimal(dtDatos.rows(0).Value)

textox.text=mivariable.Tostring

Listo asunto arreglado.

Pero lo que estás haciendo es declarar variables decimales con new decimal.

Al asignarle valores, le estás asignando valores de tipo Double.

Seguidamente estás agregando valores de cadena, entonces cómo pretendes obtener resultados coherentes?.

Revisa eso.

Saludos cordiales,
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