Filtrar un DataSet

02/02/2006 - 23:16 por mandle | Informe spam
Buenas... Ahora la siguiente pregunta..

he llenado un datagrid con un DataSet que me devuelve un código y una
descripción, , también tengo en la pantalla un textbox. La idea es que cada
vez que yo digite una letra en el textbox, el datagrid se vaya refrescando
con la información que coincida con la que esta éste, ya sea que pertenezca
al código o a la descripción... Es como hacer un Like en SQL..

Por ejemplo...
Paso 1..
Digite Busqueda --
| |

Codigo Descripción
0140455A Descripción de Articulo1
0245BCC Bueno


Paso 2.. Digito una letra en el textbox

Digite Busqueda --
| A |

Codigo Descripción
0140455A Descripción de Articulo1


Es posible hacer esto, o tengo que ejecutar una consulta por cada letra que
digite?

Preguntas similare

Leer las respuestas

#1 Benton
03/02/2006 - 01:24 | Informe spam
he llenado un datagrid con un DataSet que me devuelve un código y una
descripción, , también tengo en la pantalla un textbox. La idea es que
cada
vez que yo digite una letra en el textbox, el datagrid se vaya refrescando
con la información que coincida con la que esta éste, ya sea que
pertenezca
al código o a la descripción... Es como hacer un Like en SQL..



Debes llenar el grid con el objeto DefaultView de una de las tablas del
dataset, por ejemplo:

Grid1.DataSource = dataSet.Tables[0].DefaultView;

DefaultView es un objeto de la clase DataView, la cual tiene la propiedad
RowFilter, que cambiarías a cada teclazo en el textBox:

private void txtBuscar_TextChanged(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
DataView dv = dataSet.Tables[0].DefaultView;

if (tb.Text.Length > 0)
dv.RowFilter = string.Format("nombre like '{0}%'", tb.Text);
else
dv.RowFilter = "";
}

Saludos,

-Benton


Por ejemplo...
Paso 1..
Digite Busqueda --
| |

Codigo Descripción
0140455A Descripción de Articulo1
0245BCC Bueno


Paso 2.. Digito una letra en el textbox

Digite Busqueda --
| A |

Codigo Descripción
0140455A Descripción de Articulo1


Es posible hacer esto, o tengo que ejecutar una consulta por cada letra
que
digite?


Respuesta Responder a este mensaje
#2 Octavio Hernandez
03/02/2006 - 01:30 | Informe spam
Hola,

Puedes lograr fácilmente lo que quieres usando el DataView subyacente al
DataTable que quieres filtrar (propiedad RowFilter):

http://msdn.microsoft.com/library/s...taview.asp

Slds - Octavio

"mandle" escribió en el mensaje
news:%
Buenas... Ahora la siguiente pregunta..

he llenado un datagrid con un DataSet que me devuelve un código y una
descripción, , también tengo en la pantalla un textbox. La idea es que
cada
vez que yo digite una letra en el textbox, el datagrid se vaya refrescando
con la información que coincida con la que esta éste, ya sea que
pertenezca
al código o a la descripción... Es como hacer un Like en SQL..

Por ejemplo...
Paso 1..
Digite Busqueda --
| |

Codigo Descripción
0140455A Descripción de Articulo1
0245BCC Bueno


Paso 2.. Digito una letra en el textbox

Digite Busqueda --
| A |

Codigo Descripción
0140455A Descripción de Articulo1


Es posible hacer esto, o tengo que ejecutar una consulta por cada letra
que
digite?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida