none
Navegar las filas de un Datagridview RRS feed

  • Pregunta

  • Buenas Noches Estoy Haciendo un mantenimiento por la cual he agregado botones de navegacion que son Primero,Anterior, Siguiente,Ultimo lo quiero manipular desde  un datagridview ahi estan los registros cargados como podria llamarlos desde cada boton y recorrer sus filas 

    este codigo no me funciona datalistado es mi datagridview cargado con datos 

     Private Sub cmdadelante_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdadelante.Click
            Dim actual As Integer = Datalistado.CurrentCell.RowIndex
            Dim siguiente As Integer = actual + 1
            Try
                If Datalistado.RowCount > siguiente Then
                    Datalistado.CurrentCell = Datalistado.Rows(siguiente).Cells(0)
                    Datalistado.Rows(siguiente).Selected = True
                Else
                    MsgBox("Llego al Final")
                End If
            Catch ex As Exception
                MsgBox("No se Completo el Proceso por:" & ex.Message)
            End Try
        End Sub

    saludos cordiales

    Atentamente

    Daniel 


    dmc

    viernes, 29 de septiembre de 2017 5:01

Respuestas

  • Hola:
    En un Form como el de la imagen

    copia y pega el siguiente codigo
    Option Strict On
    Option Explicit On
    Imports System.Data.SqlClient
    Public Class Form1
        'Variable para controlar el numero de registros
        Private miNumRegistros As Int32
        'Variable para controlar el registro Actual
        Private miRegActual As Int32
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.DataGridView1.AllowUserToAddRows = False
            Dim msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=TU_BASE_DE_DATOS;Integrated Security=True"
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection(msCadenaSQL)
                    ' crear adaptadores
                    Dim daDataAdapter As New SqlDataAdapter("SELECT * FROM provincia", loConexion)
                    Dim loDataTable As New DataTable
                    daDataAdapter.Fill(loDataTable)
                    Me.DataGridView1.DataSource = loDataTable
                    miNumRegistros = Me.DataGridView1.RowCount
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
        Private Sub lP_Primero()
            Me.btnPrimero.Enabled = False
            Me.btnAnterior.Enabled = False
            Me.btnSiguiente.Enabled = True
            Me.btnUltimo.Enabled = True
            miRegActual = 0
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_Siguiente()
            Me.btnPrimero.Enabled = True
            Me.btnAnterior.Enabled = True
            miRegActual += 1
            If miRegActual = miNumRegistros - 1 Then
                Me.btnUltimo.Enabled = False
                Me.btnSiguiente.Enabled = False
            End If
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_Ultimo()
            Me.btnPrimero.Enabled = True
            Me.btnAnterior.Enabled = True
            Me.btnSiguiente.Enabled = False
            Me.btnUltimo.Enabled = False
            miRegActual = miNumRegistros - 1
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_Anterior()
            Me.btnSiguiente.Enabled = True
            Me.btnUltimo.Enabled = True
            miRegActual -= 1
            If miRegActual = 0 Then
                Me.btnPrimero.Enabled = False
                Me.btnAnterior.Enabled = False
            End If
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_MostrarRegistro()
            Dim loFila As DataGridViewRow = Me.DataGridView1.CurrentRow()
            Me.txtIdProvincia.Text = loFila.Cells("ID_PROVINCIA").Value.ToString()
        End Sub
        Private Sub btnPrimero_Click(sender As Object, e As EventArgs)
            lP_Primero()
        End Sub
        Private Sub btnSiguiente_Click(sender As Object, e As EventArgs)
            lP_Siguiente()
        End Sub
        Private Sub btnUltimo_Click(sender As Object, e As EventArgs)
            lP_Ultimo()
        End Sub

        Private Sub btnAnterior_Click(sender As Object, e As EventArgs)
            lP_Anterior()
        End Sub
    End Class

    Un saludo desde Bilbo

    Carlos

    • Marcado como respuesta Marcoscc daniel sábado, 30 de septiembre de 2017 22:14
    sábado, 30 de septiembre de 2017 5:54

Todas las respuestas

  • Hola:
    En un Form como el de la imagen

    copia y pega el siguiente codigo
    Option Strict On
    Option Explicit On
    Imports System.Data.SqlClient
    Public Class Form1
        'Variable para controlar el numero de registros
        Private miNumRegistros As Int32
        'Variable para controlar el registro Actual
        Private miRegActual As Int32
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.DataGridView1.AllowUserToAddRows = False
            Dim msCadenaSQL As String = "Data Source=.\SQLEXPRESS;Initial Catalog=TU_BASE_DE_DATOS;Integrated Security=True"
            Try
                ' Configuramos una conexión con el origen de datos.
                Using loConexion As New SqlConnection(msCadenaSQL)
                    ' crear adaptadores
                    Dim daDataAdapter As New SqlDataAdapter("SELECT * FROM provincia", loConexion)
                    Dim loDataTable As New DataTable
                    daDataAdapter.Fill(loDataTable)
                    Me.DataGridView1.DataSource = loDataTable
                    miNumRegistros = Me.DataGridView1.RowCount
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub
        Private Sub lP_Primero()
            Me.btnPrimero.Enabled = False
            Me.btnAnterior.Enabled = False
            Me.btnSiguiente.Enabled = True
            Me.btnUltimo.Enabled = True
            miRegActual = 0
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_Siguiente()
            Me.btnPrimero.Enabled = True
            Me.btnAnterior.Enabled = True
            miRegActual += 1
            If miRegActual = miNumRegistros - 1 Then
                Me.btnUltimo.Enabled = False
                Me.btnSiguiente.Enabled = False
            End If
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_Ultimo()
            Me.btnPrimero.Enabled = True
            Me.btnAnterior.Enabled = True
            Me.btnSiguiente.Enabled = False
            Me.btnUltimo.Enabled = False
            miRegActual = miNumRegistros - 1
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_Anterior()
            Me.btnSiguiente.Enabled = True
            Me.btnUltimo.Enabled = True
            miRegActual -= 1
            If miRegActual = 0 Then
                Me.btnPrimero.Enabled = False
                Me.btnAnterior.Enabled = False
            End If
            Me.DataGridView1.CurrentCell = Me.DataGridView1.Item(0, miRegActual)
            lP_MostrarRegistro()
        End Sub
        Private Sub lP_MostrarRegistro()
            Dim loFila As DataGridViewRow = Me.DataGridView1.CurrentRow()
            Me.txtIdProvincia.Text = loFila.Cells("ID_PROVINCIA").Value.ToString()
        End Sub
        Private Sub btnPrimero_Click(sender As Object, e As EventArgs)
            lP_Primero()
        End Sub
        Private Sub btnSiguiente_Click(sender As Object, e As EventArgs)
            lP_Siguiente()
        End Sub
        Private Sub btnUltimo_Click(sender As Object, e As EventArgs)
            lP_Ultimo()
        End Sub

        Private Sub btnAnterior_Click(sender As Object, e As EventArgs)
            lP_Anterior()
        End Sub
    End Class

    Un saludo desde Bilbo

    Carlos

    • Marcado como respuesta Marcoscc daniel sábado, 30 de septiembre de 2017 22:14
    sábado, 30 de septiembre de 2017 5:54
  • Muchas Gracias Por tu ayuda  Carlos 

    Saludos


    dmc

    sábado, 30 de septiembre de 2017 22:14