Usuário com melhor resposta
Usando o RowFilter em múltiplas colunas

Pergunta
-
Pessoal bom dia.gostaria de uma ajuda de como fazer esta consulta corretamente. O meu problema é o seguinte, tenho este filtro no meu textbox que busco o nome ou o telefone do contato.
'Modelo 1
Private Sub txtBuscaClientes_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBuscaClientes.TextChanged Try Dim dv As DataView = Me.gvContatos.DataSource dv.RowFilter = "Nome LIKE '%" & txtBuscaClientes.Text & "' OR Convert(Fone1,'System.String') LIKE '%" & txtBuscaClientes.Text & "%'" Me.gvContatos.DataSource = dv Catch ex As Exception Throw ex End Try End Sub
O problema é que sempre ele busca a última letra do Filter " Nome ". Já na segunda coluna " "' OR Convert(Fone1,'System.String') LIKE '%", está funcionando normalemente qualquer valor que digite ela está filtrando independente se estiver no início, meio ou fim.Gostaria de uma ajuda se possível. Gostaria que o filtro nome também começasse a ser filtrando quando eu digitar alguma letra, e fosse filtrando no início, meio e fim.Quando eu deixou assim
'Modelo 2
dv.RowFilter = "Nome LIKE '%" & txtBuscaClientes.Text & "%'"
Os nomes são filtrado de acordo o digito tanto no ínicio como no final.
A agradeço qualquer ajuda..
Respostas
-
Também estou precisando saber estou com o mesmo problema o que o seu.... ver ai se alguém ajuda...eu só conseguir fazendo separado por textbox...assim..:
Private Sub txtNomeContato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNomeContato.TextChanged Try DirectCast(datagridContatos.DataSource, DataTable).DefaultView.RowFilter = "Pes_contato_Nome like '%" + txtNomeContato.Text.Trim().Replace("'", "''") + "%'" Catch ex As Exception Throw ex End Try End Sub Private Sub txtTelefoneContato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelefoneContato.TextChanged Try DirectCast(datagridContatos.DataSource, DataTable).DefaultView.RowFilter = "Pes_contato_Fone1 like '%" + txtNomeContato.Text.Trim().Replace("'", "''") + "%'" Catch ex As Exception Throw ex End Try End Sub
- Marcado como Resposta Thyago Analista sexta-feira, 18 de janeiro de 2013 11:11
Todas as Respostas
-
Também estou precisando saber estou com o mesmo problema o que o seu.... ver ai se alguém ajuda...eu só conseguir fazendo separado por textbox...assim..:
Private Sub txtNomeContato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNomeContato.TextChanged Try DirectCast(datagridContatos.DataSource, DataTable).DefaultView.RowFilter = "Pes_contato_Nome like '%" + txtNomeContato.Text.Trim().Replace("'", "''") + "%'" Catch ex As Exception Throw ex End Try End Sub Private Sub txtTelefoneContato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTelefoneContato.TextChanged Try DirectCast(datagridContatos.DataSource, DataTable).DefaultView.RowFilter = "Pes_contato_Fone1 like '%" + txtNomeContato.Text.Trim().Replace("'", "''") + "%'" Catch ex As Exception Throw ex End Try End Sub
- Marcado como Resposta Thyago Analista sexta-feira, 18 de janeiro de 2013 11:11
-