Cómo filtrar un DataGrid con más de 1 condición de búsqueda?

18/07/2005 - 11:21 por mm | Informe spam
Tengo una bd access. Establezco una conexión, odbcadapter y dataset. Creo un
formulario con un datagrid y un boton Fill que llena al completo. Sin
problemas.
Hago lo mismo con una restricción, modificando el SQL del adaptador ...
where IdCliente = (?) creando un parámetro y en botón Fill añadiendo:
odbcDataAdapter1.SelectCommand.Parameters["IdCliente"].Value = txtNHC.Text;
Me funciona.
No lo tengo claro cómo restrinjo o busco por más de Parámetro, supongo que
utilizando If, porque sólo encuentro el registro si lleno TODOS los campos,
si dejo uno en blanco, no encuentra el registro. Podríais indicarme algún
trozo de código donde dependiendo de lo que el usuario rellene haga un select
con 1, 2, 3, etc condiciones de búsqueda?. Un saludo y gracias.
 

Leer las respuestas

#1 Norberto Planchart
18/07/2005 - 21:19 | Informe spam
Hola mm

Asi puedes armar un sql y meter solo los filtros que necesitas:

string pcedula = txtcedula.Text.Trim();
string pedad = txtedad.Text.Trim();
string condi = "";
string sql="select cedula, nombre, apellido, sexo, edad from alumnos ";

if (pcedula.Length>0)
{
condi = " where ";
condi += " cedula = '" + pcedula + "' ";
}
if (pedad.Length>0)
{
if (condi.Length==0)
{
condi = " where ";
}
else
{
condi = condi + " and ";
}
condi += " edad = " + pedad ;
}
sql += condi;

Apenas puedas usa SQL Server. Con los SP eso es mas limpio ;-)

Norberto Planchart, MCSD.Net
Caracas - Venezuela





"mm" wrote in message
news:
Tengo una bd access. Establezco una conexión, odbcadapter y dataset. Creo
un
formulario con un datagrid y un boton Fill que llena al completo. Sin
problemas.
Hago lo mismo con una restricción, modificando el SQL del adaptador ...
where IdCliente = (?) creando un parámetro y en botón Fill añadiendo:
odbcDataAdapter1.SelectCommand.Parameters["IdCliente"].Value =
txtNHC.Text;
Me funciona.
No lo tengo claro cómo restrinjo o busco por más de Parámetro, supongo que
utilizando If, porque sólo encuentro el registro si lleno TODOS los
campos,
si dejo uno en blanco, no encuentra el registro. Podríais indicarme algún
trozo de código donde dependiendo de lo que el usuario rellene haga un
select
con 1, 2, 3, etc condiciones de búsqueda?. Un saludo y gracias.

Preguntas similares