Visual Basic.NET - Obtener Promedio de un GridView

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

Obtener Promedio de un GridView

Publicado por Oscar (31 intervenciones) el 16/08/2017 17:38:16
Programacion

E intentado varios codigos diferentes pero ningun me resulta el .Value enves del .text no me funciona porque no pertenece a Table Cell

espero que me puedan ayudar con alguna sugerencia quedo al pendiente.



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

Obtener Promedio de un GridView

Publicado por Miguel (476 intervenciones) el 17/08/2017 06:35:08
No entiendo por qué haces un For Each en las filas del DGV si al final solo utilizas la última fila (la variable 'row' no se está usando)...
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
Imágen de perfil de Oscar
Val: 65
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Obtener Promedio de un GridView

Publicado por Oscar (31 intervenciones) el 17/08/2017 15:25:14
Entonces que podría hacer?
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 Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Obtener Promedio de un GridView

Publicado por Diego (190 intervenciones) el 17/08/2017 18:06:49
Hola Oscar, por empezar .Text no forma parte de los miembros de Cells en un datagridview, asi que la primera correccion...
El codigo, debería acumular en algun lado los valores para luego hacer el promedio, te paso un ejemplo:

1
2
3
4
5
6
dim total as single = 0.0 'Inicializas acumulador
for each fila as datagridviewrow in dgTrafico.rows 'Recorres todas las filas
     total += fila.cells(12).value 'Sumas el valor numérico a total
next
 
msgbox "El promedio es: " & (total / dgtrafico.rows.count) 'Obtenes la media

Ese código funcionaría si en la columna 12 de tu tabla, no hay valores nulos y son valores numéricos, sino deberías hacer una comprobación.
Sugerencia, no utilizar copiar-pegar, asi llegas a entender el código.

Cualquier otra duda, pregunta.
Saludos y +Bytes.
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
Imágen de perfil de Oscar
Val: 65
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Obtener Promedio de un GridView

Publicado por Oscar (31 intervenciones) el 17/08/2017 18:22:30
Entendido pero no tengo datagridviewrow

asi que el .value no me funciona

ahora lo estoy intentando hacer por medio de un Datatable
Dim DsTrafico As DataSet = New DataSet
Dim Trafico As DataTable = New DataTable
Dim cnx As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("SIRConnectionString").ConnectionString)
Dim cmd As SqlCommand = New SqlCommand(strSQL, cnx)
Dim adapter As SqlDataAdapter = New SqlDataAdapter
Dim adapter1 As SqlDataAdapter = New SqlDataAdapter
Dim selectCMD As SqlCommand = New SqlCommand(strSQL, cnx)
Dim nuevo As SqlCommand = New SqlCommand(strSQL1, cnx)

adapter.SelectCommand = selectCMD
adapter1.SelectCommand = selectCMD
'lleno la tabla en memoria de Documentos
adapter.Fill(DsTrafico, "Trafico")
adapter1.Fill(Trafico)
DsTrafico.Tables.Add(Trafico)
If DsTrafico.Tables("Trafico").Rows.Count > 0 Then
Me.GridTrafico.DataSource = DsTrafico.Tables("Trafico")
Me.GridTrafico.DataBind()
Me.MultiView1.ActiveViewIndex = 0
Me.lbl_indicador.Text = 1

Else
Me.GridTrafico.DataSource = Nothing
Me.GridTrafico.DataBind()
End If



Dim suma1 As Integer = 0
For Each dr As DataRow In Trafico.Rows
suma1 += Convert.ToInt32(dr("DiasEjecutivo"))
TextBoxAvg.Text = suma1
Next


Saludos.
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 Oscar
Val: 65
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Obtener Promedio de un GridView

Publicado por Oscar (31 intervenciones) el 17/08/2017 18:55:37
Tambien consegui este metodo pero me dan una suma mayor a la que me da el query en sql


Dim sumObject As Object
sumObject = Trafico.Compute("Sum(DiasEjecutivo)", "")
TextBoxAvg.Text = sumObject

esta algo extraño
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 Oscar
Val: 65
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Obtener Promedio de un GridView

Publicado por Oscar (31 intervenciones) el 17/08/2017 19:17:18
Ya lo verifique el código esta bien la consulta es la que esta mal.
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