Jump to content

Auxilio na pesquisa


Blackvelvet
 Share

Recommended Posts

Boas a todos.

Mais uma vez venho pedir o vosso auxilio,pois estou perdido.  ?

É o seguinte:

Eu tenho uma tabela em que me aparece os campos todos, para poder pesquisar na tabela e fazer algum update. Para isso tenho uma textbox e uma combobox para filtragem e queria que isso fosse no evento do botão.

Ja fiz varias pesquisas,mas não encontro o que desejo.

Tenho este codigo para a textbox:

Private Sub txtProcurar_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtProcurar.TextChanged
        Procurar_Dados(Me.txtProcurar.Text)
    End Sub

e depois tenho este:

Sub Procurar_Dados(ByVal Dados_Chave As String)
        Dim DR As DataRow
        Dim DT As DataTable

        If Me.cbxFiltagem.Text = Nothing Then
            Me.cbxFiltagem.Text = cbxFiltagem.Text
        End If
        Dim SQL As String = "SELECT * FROM gestao WHERE " & Me.cbxFiltagem.Text & " LIKE '" & Dados_Chave.ToString & "%' ORDER BY id asc "

Isto foi feito pelo que aprendi no curso(pouco,mas aprendi) agora,não sei como fazer o resto e aplicar ao evento do botao.

Agradeço a vossa ajuda.

EDIT: GeSHi adicionado

Link to comment
Share on other sites

Boas novamente:

Ja encontrei +/- o que prendo,no entanto, na tabela não me aparece, a busca que faço,ou seja, fica com os campos todos em branco.

Este é o codigo que usei:

Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
        Dim objConnection As New SqlConnection _
            ("Data Source=.\SQLEXPRESS;Initial Catalog=GestInformatica;Integrated Security=SSPI;")
        Dim query As String = "SELECT * FROM gestao"
        Dim da As New SqlDataAdapter _
                    (query, objConnection)
        Dim ds As New DataSet

        da.Fill(ds, "gestao") 
        Lista.DataSource = ds.Tables(0)

        If Lista.Rows.Count = 0 Then
            MessageBox.Show("A pesquisa não devolveu qualquer resultado.", "Sem resultados", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
        Select Case cbxFiltagem.SelectedIndex
            Case 0 'utilizador
                select_info("SELECT * FROM gestao WHERE utilizador = '%" & txtProcurar.Text & "%'")
            Case 1 ' empresa
                select_info("SELECT * FROM gestao WHERE empresa = '%" & txtProcurar.Text & "%'")
            Case 2 'departamento
                select_info("SELECT * FROM gestao WHERE departamento = '%" & txtProcurar.Text & "%'")

        End Select
    End Sub

Podem-me dizer onde é que está o erro?

EDIT: GeSHi adicionado

Link to comment
Share on other sites

Assim

Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
        Dim objConnection As New SqlConnection _
            ("Data Source=.\SQLEXPRESS;Initial Catalog=GestInformatica;Integrated Security=SSPI;")
Dim query As String	
        Select Case cbxFiltagem.SelectedIndex
            Case 0 'utilizador
                query = "SELECT * FROM gestao WHERE utilizador = '%" & txtProcurar.Text & "%'"
            Case 1 ' empresa
                query = "SELECT * FROM gestao WHERE empresa = '%" & txtProcurar.Text & "%'"
            Case 2 'departamento
                query = "SELECT * FROM gestao WHERE departamento = '%" & txtProcurar.Text & "%'"
        End Select
        Dim da As New SqlDataAdapter _
                    (query, objConnection)
        Dim ds As New DataSet

        da.Fill(ds, "gestao")
        Lista.DataSource = ds.Tables(0)

        If Lista.Rows.Count = 0 Then
            MessageBox.Show("A pesquisa não devolveu qualquer resultado.", "Sem resultados", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If

End Sub

Pedro Martins

Não respondo a duvidas por PM

Link to comment
Share on other sites

Caça:

Obrigado pela ajuda. Ja funcionou, no entanto tive que fazer uma pequena alteração. Deixo aqui o codigo.

 Dim objConnection As New SqlConnection _
             ("Data Source=.\SQLEXPRESS;Initial Catalog=GestInformatica;Integrated Security=SSPI;")
        Dim query As String
        Select Case cbxFiltagem.SelectedIndex
            Case 1 'utilizador
                query = "SELECT * FROM gestao WHERE utilizador LIKE '%" & txtProcurar.Text & "%'"
            Case 2 ' empresa
                query = "SELECT * FROM gestao WHERE empresa LIKE '%" & txtProcurar.Text & "%'"
            Case 3 'departamento
                query = "SELECT * FROM gestao WHERE departamento LIKE'%" & txtProcurar.Text & "%'"
        End Select
        Dim da As New SqlDataAdapter _
                    (query, objConnection)
        Dim ds As New DataSet

        da.Fill(ds, "gestao")
        Lista.DataSource = ds.Tables(0)

        If Lista.Rows.Count = 0 Then
            MessageBox.Show("A pesquisa não devolveu qualquer resultado.", "Sem resultados", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

Alteração nº1- Como na combobox tenho um espaço em branco, o case não pode começar em 0 mas sim em 1

Alteração nº 2- na query tive que retirar o = e substituir por LIKE

Mais uma vez, um muito obrigado

😉 B) B) B) 👍 :thumbsup:

EDIT: GeSHi adicionado

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.