You are on page 1of 4

Criando um formulário de pesquisa simples

Autor: Celso Caltabiano


- ADO .NET
- BindingNavigator
- DtaGridView

1º Crie um novo projeto, no meu caso eu chamei de “Outros” e estou utilizando a


lunguagem VB.NET.

2º No formulário “Form1”, adionei um objeto do tipo “GroupBox” e dentro dele adicionei


mais dois objetos “BindingNavigator” e “DataGridView”. Alterei a propriedade name
destes objetos da seguinte forma:

BindingNavigator -> NAME: bndNav


DataGridView -> NAME: dtGrid

3º Fora do GroupBox, direto no formulário, adicionei dois objetos do tipo “Button” e alterei
a propriedade name:

Button1 -> NAME: btnRefresh


Button2 -> NAME: btnFechar

4º Agora adicione ao projeto uma nova classe com o nome “clsDB”, o código existe dentro
dela deve ser o descrito abaixo:

'Biblioteca para acesso aos objetos


Imports System.Data.OleDb

Public Class clsDB

#Region "Conexão"
'string de conexão
Dim cnn As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data
Source=C:\DB Ambiente de Teste\SMA_CONTROL.mdb;Jet OLEDB:Database
Password=smaengenharia;")
#End Region

#Region "Globais"
'data set
Dim ds As DataSet
'string para comandos sql
Dim vsql As System.Text.StringBuilder
'string para execução de comandos
Dim cmd As OleDbCommand
'data adapter
Dim da As New OleDbDataAdapter
'data reader
Dim dr As OleDbDataReader
#End Region
Function PesquisaGeral(ByVal op As String, ByVal par01 As String,
ByVal par02 As String) As DataTable
Try

'cria uma nova instancia do objeto Dataset


ds = New DataSet

'Verifica a opção de pesquisa.


'A idéia é ter uma única função para as diferentes
'pesquisas do sistema. Neste exemplo temos apenas uma, mas
poderiamos ter várias
Select Case op
Case "1"
'cria uma nova instancia do objeto StringBuilder
vsql = New System.Text.StringBuilder

'cria a instrução sql propriamente dita


vsql.Append("Select * From TBL_INFO_PLACA")

'cria uma nova instancia do objeto dataAdpter já


passando os parametros
'que serão utilizados para executa-lo
da = New OleDbDataAdapter(vsql.ToString, cnn)

End Select

'Da um nome para a coleção de dados retornada com relação a


instrução SQL acima e
'armazena esta coleção no dataSet
da.Fill(ds, "PesquisaGeral")

'como estamos usando dataset e esta função retorna um


dataTable, aqui
'esta a instrução para retorna apenas a primeirta tabela do
dataSet que no caso
'é a que acabamos de criar
Return ds.Tables(0)

Catch ex As Exception
'Caso ocorra algum erro, o mesmo será capturado e será
exibida a sua descrição
System.Windows.Forms.MessageBox.Show(ex.Message, "Erro",
MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
'antes de sair totalmente desta função, alguns objetos são
liberados da memória
da.Dispose()
End Try

End Function

End Class
5º O código do formulário é bem simples, contém a declaração de algumas variaveis,
contem um metodo, e a codificação do envento onClick dos dois Buttons já criados. Esta
descrito a baixo.

Public Class Form1

'Definição das variaveis Globais


Dim bs As BindingSource = New BindingSource()
Dim dTab As DataTable

'instancia da nossa classe criada


Dim clsDB As New clsDB

Sub PreencherDataGrid(ByVal op As String, ByVal par01 As String,


ByVal par02 As String)
Try
'instancia do objeto datatable
dTab = New DataTable

'controle de da opção de pesquisa


Select Case op
Case "1"
'invova o metodo PesquisaGeral da classe clsDB
armazanando o resultado em dTab
dTab = clsDB.PesquisaGeral(op, "", "")
End Select

'ligação das fontes de dados


bs.DataSource = dTab
bndNav.BindingSource = bs
dtGrid.DataSource = bs

'libera objeto da memória


dTab.Dispose()

Catch ex As Exception
MessageBox.Show(ex.Message, "..:: Erro ::..",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub

Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e


As System.EventArgs) Handles btnRefresh.Click
PreencherDataGrid("1", "", "")
End Sub

Private Sub btnFechar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnFechar.Click
Me.Close()
End Sub
End Class
Criando a Pesquisa

1º No Formulário, adicione um TextBox, um Label e um Button, altere as seguintes


propriedades de cada um.

Label -> TEXT: Codigo da Placa

TextBox -> NAME: txtPesq

Button -> NAME: btnLimpar

2º No envento onClick do objeto btnLimpar a codificação será


Private Sub btnLimpar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnLimpar.Click
bs.RemoveFilter()
End Sub

3º A pesquisa esta adicona na codificação do evento onKeyPress do objeto TextBox e fica


assim

Private Sub txtPesq_KeyPress(ByVal sender As System.Object, ByVal e As


System.Windows.Forms.KeyPressEventArgs) Handles txtPesq.KeyPress
bs.Filter = "PLACA Like '%" & txtPesq.Text & "%'"
End Sub

Resultados
Sempre que algum caracter for digitado no TextBox, o datagrid será filtrado de acordo;

You might also like