filtrar con dataset

21/02/2007 - 15:03 por Juanma | Informe spam
Hola,

Tengo un problema cuando intento filtrar un dataset para modificar el
resultado de mi grid.

Al insertar cualquier tecla en el textbox, se inicia una funcion que filtra
mi dataset (donde tengo un select de una tabla sql) y vuelve a cargar el
datasource de mi grid.

Este es el codigo:
Me.Grid2.DataSource = Me.DsArticles.Tables(0).Select("articlename like '%" +
txtFind.Text + "%'")

Donde DsArticles es el dataset global y txtFind es el textbox. articlename
es el campo por el que quiero filtrar.

El resultado es correcto pero mi grid me muestra unas columnas diferentes a
las que tenia (error, norows...). ¿Alguien me puede aclarar el problema?

Gracias
 

Leer las respuestas

#1 Alberto Poblacion
21/02/2007 - 20:10 | Informe spam
"Juanma" wrote in message
news:
Me.Grid2.DataSource = Me.DsArticles.Tables(0).Select("articlename like '%"
+ txtFind.Text + "%'")

El resultado es correcto pero mi grid me muestra unas columnas diferentes
a las que tenia (error, norows...). ¿Alguien me puede aclarar el problema?



El Select del DataTable devuelve un Array de DataRows, que aunque se
puede asignar al DataSource, no es lo mismo que el DataTable que seguramente
le habías asignado previamente. Para hacer el filtrado que quieres, es mejor
que interpongas un DataView y uses su método "Filter":

'Carga Inicial:
Dim dv as DataView = Me.DsArticles.Tables(0).DefaultView
Me.Grid2.DataSource = dv

'Para Filtrar:
dv.RowFilter = "articlename like '%" + txtFind.Text + "%'"

Preguntas similares