Consultas a DataGrid Fecha: 10/Ago/2004 (10/08/2004) |
. |
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 RegionEvento 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.LoadMe.SqlDataAdapter1.Fill(myDataSet, "Customers")
Me.DataGrid1.DataSource = myDataSet.Tables("Customers")
columnas()
End SubEste procedimiento llena el LitBox con los nombre de los campos con los que cuenta la tabla.
Public
Sub columnas() 'numero de columnasDim 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)
NextEnd 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
NextEnd 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.Clicktabla = 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))) Thentabla.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 :DMe.DataGrid1.DataSource = myDataSet2.Tables("Customers")End Sub
Nota.- Recuerda calificar la publicación, no seas malo(a) :D.
Fichero con el código de ejemplo: ErickAragon_ConsultaDataGrid - Tamaño 10KB