Vamos a rellenar un dataset con una consulta de la siguiente manera:
Nota: La variable dgv
es nuestro control DataGridView
.
Dim sql As String
Dim cn as MySqlConnection
Dim cm As MySqlCommand
Dim da As MySqlDataAdapter
Dim ds as DataSet
sql = "SELECT * FROM alumnos WHERE cursoAcademico=?curso"
cn = New MySqlConnection("Data Source=servidor;Database=base_de_datos;User ID=usuario; Password=clave; Allow Zero Datetime=True; CHARSET=latin1")
cn.open()
cm = New MySqlCommand()
cm.CommandText = sql
cm.CommandType = CommandType.Text
cm.Connection = cn
cm.Parameters.Add("?curso", MySqlDbType.Int32)
cm.Parameters("?curso").Value = 2006
da = New MySqlDataAdapter(cm)
ds= New DataSet()
da.Fill(ds)
'la variable Dim vista as DataView es global a toda la clase
vista=ds.Tables(0).DefaultView
dgv.datasource=vista
Entonces ya tenemos los datos correspondientes a la consulta en el objeto ds
, que es un objeto de la clase DataSet
y mostrados sobre el control dgv
que es el control DataGridView
.
Ahora tenemos que implementar el evento TextChanged
de la caja de texto con el siguiente contenido:
Suponemos que vamos a filtrar por el campo primer_apellido del alumno y que la caja que usaremos de filtro se llama txtFiltro
.
vista.RowFilter= "primer_apellido LIKE '%" & txtFiltro.text & "%'"
De esta manera el datagridview
se irá refrescando automáticamente con los valores que coincidan con el filtro tecleado (cualquiera que contenga el patrón).
Nota: Suponemos que la variable Dim vista as DataView
es global a toda la clase, es decir, que está declarada al principio de la clase.