Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cega86

Diversas opções de consulta

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.