Consultas a DataGrid
 

Fecha: 10/Ago/2004 (10/08/2004)
Autor: Erick Aragón hackjavasun@yahoo.com.mx

.

Introducción.

    En este articulo mostrare como seleccionar una celda de un DataGrid en base a condición de búsqueda, también simulare la ejecución de una instrucción SQL para hacer búsqueda de registros.

La Forma.

Esta es el diseño de la forma con la que se trabajara en esta aplicación.

Cuenta con un control DataGrid, 2 Botones, un TextBox y un ListBox.

 

 

 

 

 

 

Manos al Código.

Region donde colocaremos las variables que necesitáremos de forma Global.

#Region "variables"

        Dim myDataSet As New DataSet

        Dim tabla As New DataTable

        Dim nRows As Integer

        Dim i As Integer

#End Region

Evento Load del formulario.

En el evento Load del formulario llenaremos el DataSet y mostraremos los datos en el DataGrid. Nota.- El Adapter fue hecho con el asistente, se selecciona la Tabla Customers de la DB Northwind.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

                    Me.SqlDataAdapter1.Fill(myDataSet, "Customers")

                    Me.DataGrid1.DataSource = myDataSet.Tables("Customers")

        columnas()

End Sub

Este procedimiento llena el LitBox con los nombre de los campos con los que cuenta la tabla.

Public Sub columnas()

    'numero de columnas

            Dim nCol As Integer

     nCol = myDataSet.Tables("Customers").Columns.Count

            Dim nameCol As String

            'llenar el ListBox

            For i = 0 To (nCol - 1)

           nameCol = myDataSet.Tables("Customers").Columns.Item(i).Caption

           lstColumnas.Items.Add(nameCol)

            Next

End Sub

A continuación el código que debemos colocar en el Button1 "Primer Registro"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Me.DataGrid1.DataSource = myDataSet.Tables("Customers")

    tabla = myDataSet.Tables("Customers")

    nRows = tabla.Rows.Count()

           For i = 0 To (nRows - 1)

      If (Me.txtPalabra.Text.Equals(tabla.Rows.Item(i).Item(lstColumnas.SelectedIndex))) Then

                'Si queremos seleccionar todo el Registro usariamos

                'Me.DataGrid1.Select(i)

                'Seleccionamos la Celda

                  Me.DataGrid1.CurrentCell = New DataGridCell(i, lstColumnas.SelectedIndex)

                    Exit For

                End If

    Next

End Sub

A continuación el código que debemos colocar en el Button2 "Todos"

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    tabla = myDataSet.Tables("Customers")

           Dim myDataSet2 As New DataSet

    nRows = tabla.Rows.Count()

           For i = 0 To (nRows - 1)

      
If Not (Me.txtPalabra.Text.Equals(tabla.Rows.Item(i).Item(lstColumnas.SelectedIndex))) Then

        tabla.Rows.Item(i).Delete()'Borro los registros que no coincidan con la búsqueda.

                End If

        Next

    myDataSet2.Tables.Add(tabla.Copy)

    tabla.RejectChanges() 'Cancelo los cambios :D

           Me.DataGrid1.DataSource = myDataSet2.Tables("Customers")

End Sub

 

 

Nota.- Recuerda calificar la publicación, no seas malo(a) :D.


ir al índice

Fichero con el código de ejemplo: ErickAragon_ConsultaDataGrid - Tamaño 10KB