es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El DataGridView de Visual Studio tiene problemas para obtener el valor mínimo de las celdas y los demás valores de las celdas a un cuadro de texto.

Enfrento un problema al intentar obtener el valor mínimo de un DataGridView y mostrarlo en un label.text/textbox.text.

Este es mi diseño

Dim max As Integer
Dim maxname As String = ""
Dim maxgd As String = ""
Dim maxvalue As String = ""

For i = 0 To DataGridView1.Rows.Count() - 1 Step +1
    If i = 0 Then
        max = DataGridView1.Rows(i).Cells(4).Value
    End If

    If max < DataGridView1.Rows(i).Cells(4).Value Then
        maxvalue = DataGridView1.Rows(i).Cells(4).Value
        maxname = DataGridView1.Rows(i).Cells(0).Value
        maxgd = DataGridView1.Rows(i).Cells(5).Value
    End If
Next

HmsLabel.Text = maxname.ToString()
GDLabel.Text = maxgd.ToString()
AMLabel.Text = maxvalue.ToString()
End Sub

El código anterior funciona para el valor máximo y la salida del nombre y la calificación.

Sin embargo, el código para el valor mínimo no funcionó:

Dim min As Integer
Dim minname As String = ""
Dim mingd As String = ""
Dim minvalue As String = ""

For l = 0 To DataGridView1.Rows.Count() - 1 Step +1
    If l = 0 Then
        min = DataGridView1.Rows(l).Cells(4).Value
    End If

    If min > DataGridView1.Rows(l).Cells(4).Value Then
        minvalue = DataGridView1.Rows(l).Cells(4).Value
        minname = DataGridView1.Rows(l).Cells(0).Value
        mingd = DataGridView1.Rows(l).Cells(5).Value
    End If
Next

LAMLabel.Text = minvalue.ToString()
LMSLabel.Text = minname.ToString()
LGDLabel.Text = mingd.ToString()

La salida del valor máximo y su nombre funciona, pero falla la salida del valor mínimo.

He intentado usar este código para encontrar el valor mínimo, pero solo funciona para el valor mínimo y no sé cómo hacer que el nombre y la calificación mínimos también aparezcan en el textbox.

LAMLabel.Text = (From row As DataGridViewRow In DataGridView1.Rows
             Where row.Cells(4).FormattedValue.ToString() <>String.Empty 
             Select Convert.ToInt32(row.Cells(4).FormattedValue)).Min().ToString()

Gracias por ayudarme, lo aprecio mucho.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para obtener el valor mínimo de un DataGridView y mostrarlo en un cuadro de texto

    Para obtener el valor mínimo de un DataGridView y mostrarlo en un cuadro de texto, puedes utilizar el siguiente código:

    Dim minValue As Integer = Integer.MaxValue
    Dim minName As String = ""
    Dim minGrade As String = ""
    
    For Each row As DataGridViewRow In DataGridView1.Rows
        If Not row.IsNewRow Then
            Dim value As Integer = Integer.Parse(row.Cells(4).Value.ToString())
    
            If value < minValue Then
                minValue = value
                minName = row.Cells(0).Value.ToString()
                minGrade = row.Cells(5).Value.ToString()
            End If
        End If
    Next
    
    LAMLabel.Text = minValue.ToString()
    LMSLabel.Text = minName
    LGDLabel.Text = minGrade
    

    Explicación:

    1. Primero, declaramos variables para almacenar el valor mínimo, el nombre y la calificación.
    2. A continuación, recorremos cada fila del DataGridView y verificamos si la fila no es una fila nueva.

    3. Luego, convertimos el valor de la celda en el índice de columna 4 a un valor entero.

    4. Comparamos el valor con el valor mínimo actual, y si es menor que el valor mínimo actual, actualizamos el valor mínimo, el nombre y la calificación.

    5. Por último, establecemos la propiedad de texto de los cuadros de texto para mostrar el valor mínimo, el nombre y la calificación.

    Nota: Asegúrate de manejar las excepciones al convertir los valores de las celdas. Además, valida los datos de entrada antes de procesarlos para evitar errores o bloqueos en la aplicación.

Comments are closed.