Ir para conteúdo
Fórum Script Brasil
  • 0

Problema em pesquisa no banco


Dayana Boni

Pergunta

Oi Pessoal,

Tenho um site mobile feito em VB.NET que utiliza Access, e estou com o seguinte problema:

Em uma das áreas do site, o usuário pode digitar em um campo de pesquisa qualquer dado que necessitar de mais informações. Isso pode ser nome, endereço, placa de carro, etc e etc...

Porém, usando como exemplo a questão de placa de carro, no próprio banco estão armanzadas no formato XXX-NNNN. Ou seja, possui um divisor entre as letras e números. O mesmo ocorre com CPF e CNPJ, no banco foram armazenados com os pontos.

Deste modo, se no banco estiver armazenado a placa de um carro como "ABC-1234" e a pessoa pesquisar por "ABC1234", não haverá resultado para a pesquisa.

Sei que há como retirar via programação pontos, virgulas, traçoz e etc, assim como acrescentar todos esses itens antes de uma consulta, para facilitar a pesquisa no banco. Mas as informações estando armazenadas no estado atual, não sei como fazer.

alguém tem idéia?

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Se entendi bem sua dúvida, você gostaria de pegar o valor, por exemplo ABC1234 e comparar com ABC-1234?

Se você tiver um padrão de pesquisa, por exemplo, pesquisar tudo que contenha apenas letras e caracteres, você pode montar um método que recebe essa string e remover/testar esses pontos, traços, etc (usando Replace como o kuroi disse ou testando com expressões regulares).

Exemplo:

Dim PlacaCarro As String

   'PlacaCarro deve receber o valor do campo no banco de dados
   PlacaCarro = dataTable.Rows(i)("PlacaCarro").ToString();

   If txtPlacaCarro.Text = RemoveCaracteres(PlacaCarro) Then
     'OK deu certo
   Else
     'Erro não batem
   End If
Private Function RemoveCaracteres(String texto) As String

    texto = texto.Replace(".", "")
    texto = texto.Replace("-", "")
    ...
    'Outras remoções

    Return texto

End Function

Se sua dúvida for essa, é só um exemplo bem simples :D

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Xistyle! (:

Sim eu gostaria de pegar o valor, por exemplo, ABC1234 e comparar com ABC-1234.

Mas há o problema de que, não há um padrão de pesquisa. O usuário pode digitar no mesmo campo a placa do carro, CPF, CNPJ ou ainda o nome de uma pessoa pra fazer a busca. Aí que mora o pepino.

Isso não foi pensado anteriormente, e tudo foi gravado no bendito banco com pontuação.

Agora pra consultar, dá problema.

Há algo o que fazer, ou senta e chora?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom Dayana... os sistemas que dei manutenção tinham algo similar.

Um TextBox que o usuário digitaria qualquer informação e o sistema se "virava" pra encontrar o resultado. Contudo, esses sistemas tinham um ComboBox, com o tipo de informação que o usuário gostaria de pesquisar.

Se tiver algo parecido ai fica mais fácil (não menos trabalhoso). Se não tiver um ComboBox mas você tiver a liberdade para adicioná-lo, é uma solução simples.

Você vai ter que testar qual é o tipo de informação pesquisada e remover os caracteres indevidos. Irá perceber que muita coisa poderá ser reaproveitada (campos númericos poderão ser testados com expressão regular, campos como placa e CPF/CNPJ podem usar o mesmo padrão de remoção de pontos, traços, etc).

Dessa forma, você cria o seu padrão de pesquisa/formatação :)

Link para o comentário
Compartilhar em outros sites

  • 0

Xistyle,

Sua dica é uma boa. Vou anotar isso.

Como o projeto é de um site mobile, quanto menos burocracia na hora de buscar alguma informação, melhor. Principalmente porque, os usuários que irão usar o sistema geralmente estarão em uma situação tensa, como no caso de um sinistro (ramo de seguros).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...