COMO FAZER UMA PEQUISA COM MAIS DE UM CRITÉRIO?

DEFLAME 27/02/2016 21:11:51
#458299
Boa noite, estou fazendo minha primeira aplicação, um programa de cadastro para eletrônica,mais gostaria de melhorar a busca dele.
Estou com 3 textbox,cada 1 procurando por um critério separado.Estão no evento TextChanged filtrando no datagrid.
Estão procurando por (nome,marca e telefone). A aplicação conta com um BindingSource,para filtrar produtos [Ô]Entregues[Ô] e em [Ô]Serviço[Ô].
A minha duvida é ,como filtrar ao mesmo tempo no datagrid com mais de um textbox ? Quem souber e puder ajudar agradeço.

Private Sub PBuscaMarca()

Using con As OleDbConnection = GetConnection()
Try
con.Open()
Dim sql As String = [Ô]SELECT * FROM componentes WHERE marca LIKE [ô]%[Ô] & txtPesquiza5.Text & [Ô]%[ô][Ô]
Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
Dim da As OleDbDataAdapter = New OleDbDataAdapter(cmd)
Dim dt As DataTable = New DataTable
da.Fill(dt)
dgvBusca.DataSource = dt
BindingSource1.DataSource = dt
BindingSource1.Filter = [Ô]saiu=[ô]SERVIÇO[ô][Ô]
dgvBusca.DataSource = BindingSource1
BindingSource1.Sort = [Ô]Codigo ASC, desccomponente DESC[Ô]
PFormataGrid()
Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
End Try
End Using
End Sub
KERPLUNK 27/02/2016 21:16:46
#458300
Resposta escolhida
Em primeiro lugar, o correto seria usar parametrização para cada um dos critérios, isso ajuda em muito quanto à problemas de sintaxe SQL, mas é um pouco complexo para um iniciante, então vamos ao básico: concatenar a string SQL:

Dim sql As String = [Ô]SELECT * FROM componentes WHERE marca LIKE [ô]%[Ô] & txtPesquiza5.Text & [Ô]%[ô] AND nome LIKE [ô]%[Ô] & txtPesquiSa6.Text

Basta ir adicionando os critérios desejados, com o operador AND entre cada um deles, caso queira que todos os critérios sejam cumpridos, ou o operador OR caso queira que qualquer um deles seja cumprido.
DEFLAME 27/02/2016 22:13:40
#458302
Citação:

:
Em primeiro lugar, o correto seria usar parametrização para cada um dos critérios, isso ajuda em muito quanto à problemas de sintaxe SQL, mas é um pouco complexo para um iniciante, então vamos ao básico: concatenar a string SQL:


Dim sql As String = [Ô]SELECT * FROM componentes WHERE marca LIKE [ô]%[Ô] & txtPesquiza5.Text & [Ô]%[ô] AND nome LIKE [ô]%[Ô] & txtPesquiSa6.Text

Basta ir adicionando os critérios desejados, com o operador AND entre cada um deles, caso queira que todos os critérios sejam cumpridos, ou o operador OR caso queira que qualquer um deles seja cumprido.




Nossa fera, valeu,deu certinho muito bom, obrigado.
Tópico encerrado , respostas não são mais permitidas