Cega86 0 Denunciar post Postado Julho 9, 2009 Bom dia, Tenho uma tela onde nela vou disponibilizar ao usuário diversas opções de consulta, ele poderá consultar um registro por: código,produto,projeto,data e etc.Ele pode preencher 1 ou 2 ou 3 ou 4 ou todos os campos para efetuar a consulta ou seja eu não sei quais os campos que o usuário irá preencher ,minha dúvida é como vou montar o meu select se eu a princípio não sei quais parâmetros estaram preenchidos? teria que montar um select para cada combinação possível? abrs. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 9, 2009 O jeito mais simples seria: string sql = "SELECT * FROM TABELA WHERE 1=1" if(Campo1.Text != string.Empty) sql += " AND CAMPO1 = "+ Campo1.Text if(Campo2.Text != string.Empty) sql += " AND CAMPO2 = "+ Campo2.Text Lógico que postei o código básico, aconselho a utilizar StringBuilder ao invés de string, ao invés de colocar o where 1=1 fixo, pode criar um método para verificar se ja existe where para adicionar o and ou vice-versa. Mas como postei funciona. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Cega86 0 Denunciar post Postado Julho 9, 2009 Legal assim deve funcionar ,mas é que eu estou fazendo o acesso ao banco através de store procedure,não queria colocar nenhum sql junto com o código. Teria alguma outra forma sem montar meu select no código do programa? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 9, 2009 Mas neste caso você tem que tratar sua procedure pra quando receber valor nulo não filtrar, e quando o campo não for preenchido você deve passar o valor como nulo. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Danilo Abranches 0 Denunciar post Postado Julho 12, 2009 crie um template string tpl = "select a, b, c from tabela where "; e concatene os valores de acorco com o que o usuário preencheu tpl = tpl + "id = " + txt.text ....etc ou no template deixe tudo previsto string tpl = "select a, b, c from tabela where #FILTROID# #FILTRONOME# #FILTRODATA#"; e depois faço o replace Bom dia, Tenho uma tela onde nela vou disponibilizar ao usuário diversas opções de consulta, ele poderá consultar um registro por: código,produto,projeto,data e etc.Ele pode preencher 1 ou 2 ou 3 ou 4 ou todos os campos para efetuar a consulta ou seja eu não sei quais os campos que o usuário irá preencher ,minha dúvida é como vou montar o meu select se eu a princípio não sei quais parâmetros estaram preenchidos? teria que montar um select para cada combinação possível? abrs. Compartilhar este post Link para o post Compartilhar em outros sites