lunes, 28 de abril de 2014

Consulta condicional en el Where LinQ c#

Desarrollando una aplicacion en ASP.NET con c# y LinQ tenía que devolver una consulta con las ventas en un rango de fechas determinado y poder filtrar por las ventas en ese rango para un articulo en concreto exclusivamente. La información se mostraría filtrada o no por artículo atendiendo a si se rellenaba un control de tipo TextBox con el codigo del articulo que quisieramos filtrar.

¿Como hacemos eso?

Pues bien la sintaxis para conseguirlo es con un "if" dentro del Where

de modo que se escribiría así:

from g in cloudModel.lineasTickets
join f in cloudModel.articulos on g.codigoBarras equals f.codigoBarras
where g.fecha >= Calendar1.SelectedDate && g.fecha <= Calendar2.SelectedDate
&& (txtDesdeArticulo.Text != "" ? f.codigo == txtDesdeArticulo.Text : 1 == 1) 

Se indica que si el control tiene datos filtre el campo codigo por el valor escrito y en otro caso 1=1 es como decir no hagas nada. Una condicion siempre true. 

Espero que os ayude. Xiaoo

No hay comentarios:

Publicar un comentario

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...