Consultas a DataGrid
 

Fecha: 10/Ago/2004 (10/08/2004)
Autor: Erick Arag�n [email protected]

.

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