none
Obtener el ultimo registro agregado en un datagridview + contador para asignarlo como notificacion en un label.text RRS feed

  • Pregunta

  • Saludos comunidad VB.NET

    Quisiera saber como obtener el ultimo registro agregado a un datagridview  para generar un tipo de notificacion en un label

    por ejemplo, que cada vez que se agregue un registro y se cargue al datagridview, el label capture el valor.

    si agrego un registro entonces : label.text = "1"

    si agrego un segundo registro entonces:  label.text = "2" ,y asi sucesivamente.

    asi pues, tendria 2 notificaciones que revisar (registros).

    esa seria mi consulta, saludos.

    • Cambiado Enrique M. Montejo viernes, 18 de marzo de 2016 10:07 Pregunta relacionada con controles de Windows Forms.
    miércoles, 16 de marzo de 2016 8:20

Respuestas

  • Hola,

    Primeramente quiero saber si tu DGV está vacío?, o ya tiene datos, porque sino puedes mostrar el mensaje según cuantas filas vayas agregando.

    Private Sub btnRegistrar_Click(sender As Object, e As EventArgs) Handles btnRegistrar.Click
    
            'Agregas tus datos al DGV
            DataGridView1.Rows.Add("MiRegistro")
    
            'Tomas el número de filas de tu DGV
            Dim total As Integer = DataGridView1.Rows.Count
            Dim mensaje As String = String.Empty
    
            'Validas si es 1 o mayor a 1
            If total = 1 Then
                mensaje = "Se ha ingresado " & total & " registro."
            Else
                mensaje = "Se han ingresado " & total & " registros."
            End If
    
            'Muestras el mensaje en el label
            Label1.Text = mensaje
    
        End Sub

    Y si tu DGV, ya contiene datos y quieres mostrar SOLO EL NÚMERO de elementos que está registrando en ese momento, deberías crear una variable.

        Dim total As Integer = 0
       
        Private Sub btnRegistrar_Click(sender As Object, e As EventArgs) Handles btnRegistrar.Click
    
            'Agregas tus datos al DGV
            DataGridView1.Rows.Add("XXXXX")
    
            'Obtiene el valor de la variable y le suma 1, cada vez que registre
            total = total + 1
    
            Dim mensaje As String = String.Empty
    
            'Validas si es 1 o mayor a 1
            If total = 1 Then
                mensaje = "Se ha ingresado " & total & " registro."
            Else
                mensaje = "Se han ingresado " & total & " registros."
            End If
    
            'Muestras el mensaje en el label
            Label1.Text = mensaje
    
        End Sub

    Pero en arriba mencionas.

           'Quisiera saber como obtener el ultimo registro agregado a un datagridview 
            'para generar un tipo de notificacion en un label
    
            DataGridView1.Rows.Add("150")
    
            'Donde Cells(0) equivale a mi columna 1 (posición 0)
            Label1.Text = DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(0).Value

    Saludos.


    JC NaupaCrispín


    miércoles, 16 de marzo de 2016 18:18

Todas las respuestas

  • Hola:
    ¿ Puedes aclarar un poco mas "se agregue un registro y se cargue al datagridview" o poner el codigo con el que se  ejecutan esas operaciones ?

    Un saludo desde Bilbo
    Carlos

    miércoles, 16 de marzo de 2016 8:38
  • Claro J.Carlos Herrero, cuando se agregue un registro, que en un formulario tengo varios textbox donde se ingresara la informacion, y tengo 1 boton llamado "registrar  " que cumplira la funcion de registrar esa informacion en la bd y a su vez cargara ese registro en un datagridview.

    Me gustaria que al darle clic sobre el boton  "Registrar " , automaticamente me coloque en un label, que se a ingresado "1" dato, si vuelvo a llenar los datos  y clikeo registrar, ahora el label sea "2" y asi repetidamente.

    miércoles, 16 de marzo de 2016 15:16
  • Hola,

    Primeramente quiero saber si tu DGV está vacío?, o ya tiene datos, porque sino puedes mostrar el mensaje según cuantas filas vayas agregando.

    Private Sub btnRegistrar_Click(sender As Object, e As EventArgs) Handles btnRegistrar.Click
    
            'Agregas tus datos al DGV
            DataGridView1.Rows.Add("MiRegistro")
    
            'Tomas el número de filas de tu DGV
            Dim total As Integer = DataGridView1.Rows.Count
            Dim mensaje As String = String.Empty
    
            'Validas si es 1 o mayor a 1
            If total = 1 Then
                mensaje = "Se ha ingresado " & total & " registro."
            Else
                mensaje = "Se han ingresado " & total & " registros."
            End If
    
            'Muestras el mensaje en el label
            Label1.Text = mensaje
    
        End Sub

    Y si tu DGV, ya contiene datos y quieres mostrar SOLO EL NÚMERO de elementos que está registrando en ese momento, deberías crear una variable.

        Dim total As Integer = 0
       
        Private Sub btnRegistrar_Click(sender As Object, e As EventArgs) Handles btnRegistrar.Click
    
            'Agregas tus datos al DGV
            DataGridView1.Rows.Add("XXXXX")
    
            'Obtiene el valor de la variable y le suma 1, cada vez que registre
            total = total + 1
    
            Dim mensaje As String = String.Empty
    
            'Validas si es 1 o mayor a 1
            If total = 1 Then
                mensaje = "Se ha ingresado " & total & " registro."
            Else
                mensaje = "Se han ingresado " & total & " registros."
            End If
    
            'Muestras el mensaje en el label
            Label1.Text = mensaje
    
        End Sub

    Pero en arriba mencionas.

           'Quisiera saber como obtener el ultimo registro agregado a un datagridview 
            'para generar un tipo de notificacion en un label
    
            DataGridView1.Rows.Add("150")
    
            'Donde Cells(0) equivale a mi columna 1 (posición 0)
            Label1.Text = DataGridView1.Rows(DataGridView1.Rows.Count - 1).Cells(0).Value

    Saludos.


    JC NaupaCrispín


    miércoles, 16 de marzo de 2016 18:18
  • Muchas gracias Maestro, JC NaupaCrispín, en el caso de que quisiera que me cuente por ejemplo,el numero de  todos los registros en un datagrid que  tengan como nombre   'CitaNueva' se haria un proceso similar?
    sábado, 19 de marzo de 2016 6:22
  • Hola,

    Si, tienes que recorrer el DataGridView fila por fila y verificar si el dato de la celda coincide con tu valor.

    Dim totalCitas As Integer = 0 For Each fila As DataGridViewRow In DataGridView1.Rows 'Busco en la columna 1 (posición 0) If Convert.ToString(fila.Cells(0).Value) = "CitaNueva" Then totalCitas += 1 End If Next MessageBox.Show("Se encontró " & totalCitas & " registros con el valor [ CitaNueva ].")

    Saludos.


    JC NaupaCrispín

    sábado, 19 de marzo de 2016 18:21