ATENCIÓN AL CLIENTE: +34 923 199 148

Rellenar un dataset con una consulta SQL y volcarlo a un DataGridView (versión 2)

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.

Más información

Quizá te interese...
Código que nos permite almacenar una imagen ubicada en un campo BLOB de una base de datos MySql en un fichero .jpg. Ideal para mantener un caché en disco de las imágenes más utilizadas.