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