Filtrar los dotos de un DataGridView

12/02/2009 - 16:54 por Anti_Work | Informe spam
Hola. quiero que se filtre un datagridview segun las letras que se van
ingresando en una caja de texto. En el evento TextChanged del textbox, escibi
el esto:

DataView dv = new DataView((DataTable)DGV.DataSource);
dv.RowFilter = "ApyNom like '" + txtApB.Text + "*'";
DGV.DataSource = dv;

y funciona solo con la primera letra ingresada, al ingresar la segunda se
provoca un error porque "DGV.DataSource" en principio es un DataTable. Pero
luego de la aplicación del filtro se convierte en un DataGridView, y esto no
se puede convertir en un DataTable.

Como se resuleve esto?

Saludos

Preguntas similare

Leer las respuestas

#11 Juan Diego Bueno
16/02/2009 - 15:02 | Informe spam
Hola Xuri:

On 16 feb, 13:09, Xuri wrote:
Bueno, yo tengo un problema parecido. Tengo lo siguiente:

 filtro.Filter = nombre.text + " LIKE '%" + this.abuscar.Text + "%'";

El problema esta que cuando busco un nombre.text que contiene un apostrofe
me da error. por ejemplo:

C'an Gomila

cuando escribo la ' me genera error. Alguna solucion?

Utilizo firebird como base de datos.



Si la query fuera directamente contra el SGBD, creo que cualquiera te
recomendaría el uso de parámetros, pero como me da que no es así...
puedes utilizar truquillos como hacer un this.abuscar.Text.Replace
("'","''"); // es decir, reemplazar la comilla simple por dos comillas
simples. Si también te falla puedes simplemente reemplazarla por
cadena vacía

Saludos
Respuesta Responder a este mensaje
#12 Xuri
16/02/2009 - 17:36 | Informe spam
habia pensado hacerlo con parametros, pero no se me ocurre como.
Alguna ayudita?

Un saludo

"Juan Diego Bueno" wrote:

Hola Xuri:

On 16 feb, 13:09, Xuri wrote:
> Bueno, yo tengo un problema parecido. Tengo lo siguiente:
>
> filtro.Filter = nombre.text + " LIKE '%" + this.abuscar.Text + "%'";
>
> El problema esta que cuando busco un nombre.text que contiene un apostrofe
> me da error. por ejemplo:
>
> C'an Gomila
>
> cuando escribo la ' me genera error. Alguna solucion?
>
> Utilizo firebird como base de datos.

Si la query fuera directamente contra el SGBD, creo que cualquiera te
recomendaría el uso de parámetros, pero como me da que no es así...
puedes utilizar truquillos como hacer un this.abuscar.Text.Replace
("'","''"); // es decir, reemplazar la comilla simple por dos comillas
simples. Si también te falla puedes simplemente reemplazarla por
cadena vacía

Saludos

Respuesta Responder a este mensaje
#13 Juan Diego Bueno
16/02/2009 - 18:32 | Informe spam
Hola Xuri:


On 16 feb, 17:36, Xuri wrote:
habia pensado hacerlo con parametros, pero no se me ocurre como.
Alguna ayudita?



El uso de parámetros es muy sencillo, echa un ojo a OleDbParameter
(suponiendo que sea ese el proveedor con el que te conectas a FB) en
la MSDN.

Se reduce a algo tan simple como construir las querys o llamadas a
procedimientos y/o funciones con una sintaxis similar a la siguiente:

SELECT NIF, NOMBRE FROM PERSONAS WHERE NOMBRE LIKE @NOMBRE

En este caso, @NOMBRE es el parámetro, que podrías añadir a un
OleDbCommand de esta forma (donde cmd es el Command):

cmd.AddParameterWithValue("@NOMBRE",valor);

Evidentemente, esto es una explicación "pachanguera", lo tienes bien
documentado en la MSDN o en webs como www.elguille.info en cualquier
apartado dedicado a ADO.NET

Saludos
Respuesta Responder a este mensaje
#14 webmaster x
30/07/2009 - 00:18 | Informe spam
Esta dll re resuelve el problema

http://www.guruweba.com

*** Sent via Developersdex http://www.developersdex.com ***
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida