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