COMO FAZER UMA PEQUISA COM MAIS DE UM CRITÉRIO?
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
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
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:
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.
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.
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