[VB2008] Search + Datagridview

lcortereal

Power Member
Boas, estou a fazer um projecto em VB2008, que basicamente servirá para empresas de figurantes. O programa e baseado numa Form onde se adicionam novas pessoas na base de dados (nome, altura, dade de nascimento, etc), e depois tenho outra Form para pesquisar pessoas na base de dados.

Ja consegui fazer a primeira form (adicionar pessoas para a BD), mas agora estao me a surgir problemas ao fazer o search.

No form do search tenho um Textbox chamado txt_search, um botao chamado btn_search e um datagridview onde serao mostrados os resultados da pesquisa.

Sei que a sintaxe de SQL para fazer pesquisas é: SELECT column_name(s) FROM table_name WHERE column_name = nomedavariavel/textbox(etc)

no meu caso será: "SELECT tbl_contacts.Name, tbl_contacts.DOB, tbl_contacts.Height FROM(tbl_contacts) WHERE (((tbl_contacts.Name)=[txtSearch]));", _

o codigo que tenho para fazer isto é:
Código:
        'Make the connect string.
        txt_database2.Text = Application.StartupPath & "\db_extras_test2003.mdb"
        Dim connect_string As String = _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=""" & txt_database2.Text & """;" & _
            "Persist Security Info=False"
 
        ' Open a database connection.
        Dim conn_db_extras_test2003 As New OleDb.OleDbConnection(connect_string)
        conn_db_extras_test2003.Open()
 
        ' Make a Command to search data.
        Dim cmd As New OleDbCommand( _
        "SELECT tbl_contacts.Name, tbl_contacts.DOB, tbl_contacts.Height FROM(tbl_contacts) WHERE (((tbl_contacts.Name)=[txtSearch]));", _
            conn_db_extras_test2003)
 
        ' Execute the command.
        Try
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
 
        'Close the connection.
        conn_db_extras_test2003.Close()
        conn_db_extras_test2003.Dispose()

O problema surge quando tenho que mostrar os resultados de pesquisa no datagridview (posso mostras os resultados noutro objecto caso seja melhor)

Alguem me consegue ajudar? Ja andei a procura e nao encontrei nada que me esclarece-se...
 
Última edição:
A DataView tem uma propriedade RowFilter onde podes meter a tua procura (Nome = 'Jose').
(Ou se preferires fazes outra ligação a BD.)

Depois de alterares a DataView tens de fazer o Databind na tua DataGridView

em C# fica

dgv.DataSource = dv;
dgv.DataBind();
 
Boas, ja consegui, com a ajuda do wizzard query builder, fazer uma query.
Código:
SELECT        ID, Name, DOB, Height, Imglocation1, Imglocation2, Imglocation3
FROM            tbl_contacts
WHERE        (Name = ?)
ORDER BY ID

Agora o meu problema é o seguinte: eu tenho uma textbox (txt_search), um botao (btn_search) e um datagridview. Eu quero que quando for inserido algum texto na textbox e depois de o botao ser premido, os resultados da pesquisa (query) sejam mostrados na datagridview.

Já tentei:
Código:
    Private Sub btn_search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_search.Click
        Tbl_contactsTableAdapter.Fill(Db_extras_test2003DataSet1.tbl_contacts, "Name")
mas n deu nada :(
 
Back
Topo