Jump to content
Fórum Script Brasil
  • 0

Problema em pesquisa no banco


Dayana Boni

Question

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 to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...