Trabalhando com controles Vinculados aos Dados
Trabalhar com controles vinculados (data bound) no VB.NET com ADO .NET e WinForms pode ser até divertido. Só o fato de você não ter que escrever muitas linhas de código pois os controles vão fazer todo o serviço para você já é um alívio. Vou mostrar como podemos usar os controles vinculados em aplicativos Windows.
Os controles vinculados são controles que podem ser facilmente ligados aos componentes de dados , e, o ambiente IDE do Visual Studio é um ambiente rico em componentes de dados e controles vinculados.
Vou focar os três controles vinculados que creio são os mais usados : DataGrid , ListBox e ComboBox.
No VB 6.0 , a utilização dos controles vinculados era feita pela definição de propriedades de vinculação do controle : DataChanged, DataField, DataFormat, DataMember, e DataSource. No VB.NET , a vinculação aos dados tem um definição mais abrangente : você pode vincular qualquer propriedade de qualquer controle a qualquer estrutura que contém dados. A vinculação nos formulários Windows e realizado via propriedade DataBinding que contém a coleção de objetos Binding para o controle.
Nota : A vinculação de dados com ADO é suportada no VB.NET por questões de compatibilidade com o VB 6.0.
Os controles vinculados possuem propriedades que podem ser configuradas nos componentes de dados de maneira que eles ficam prontos para exibir os dados nos formulários. Duas destas importantes propriedades são :
A propriedade DataSource dos componentes de dados é a mais importante e você pode definir diferentes tipos de componentes de dados como a propriedade DataSource. Assim você pode definir um DefaultViewManager ou um DataView com esta propriedade :
Dim ds as DataSet = New DataSet()
DataGrid.DataSource = ds.DefaultViewManager
A propriedade DisplayMember pode ser configurada para o campo nome de uma tabela do banco de dados se você desejar vincular um campo particular ao controle.
Dim dv as DataView = ds.Tables("Clientes").DefaultView
ListBox1.DataSource = dv
ListBox1.DisplayMember = "Nome"
Os componentes de dados ADO.NET
O Visual Studio .NET fornece um rico conjunto de componentes de dados : ADO.NET. Estes componentes é que fornecem os dados aos controles WInForms. Os principais componentes são :
Estes componentes podem ser criados em tempo de desenho ou execução. A criação deles em tempo de projeto é simples : basta arrastar o componente para o formulário e configurar as propriedades desejadas.
Para trabalhar com os componentes de dados temos que efetuar alguns passos básicos :
1- Conectar com uma fonte de dados (DataSource)
A primeira coisa a fazer é criar uma conexão com a fontes de dados. Usamos um objeto Connection para conectar com a fonte de dados. Criamos uma string de conexão e o objeto Connection. Abaixo vou mostrar um exemplo usando o provedor de dados OLeDB.
Dim strCon As String = "Provider=Microsoft.JET.OLEDB.4.0;data source=c:\teste\teste.mdb"
Dim conexao AS OleDbConnection = New OleDbConnection(Strcon)
2- Criando um Data Adapter
Agora temos que criar um Data Adapter usando dois argumentos : a string SQL e o objeto Connection.
Dim strSQL As String = "Select * From Clientes"
Dim da As OleDbDataAdapter = new OleDbDataAdapter(strSQL , conexao)
3- Criando e preenchendo um DataSet
O próximo passo é criar um DataSet e preenchê-lo usando o método Fill.
Dim ds As DataSet = New DataSet()
ds.Fill(ds,"Clientes")
4- Vinculando o controle ao componente de dados
O último passo é vincular os dados a um controle vinculado usando os métodos já citados :
DataGrid.DataSource = ds.DefaultViewManager
Para encerrar vou mostrar um projeto prático onde iremos usar os controles : ListBox , ComboBox e DataGrid com uma vinculação aos componentes dados :
Inicie um novo projeto Windows Application no VS.NET e no formulário padrão insira os controles acima e três botões de comando:
Agora digite o código conforme abaixo :
Private
Sub Button1_Click(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
' Cria a string de conexão Dim conStr As String = "Provider=Microsoft.JET.OLEDB.4.0;data source=c:\teste\northwind.mdb" Dim sqlStr As String = "SELECT Nome , Sobrenome , Cargo FROM Funcionários" ' Cria o objeto para conexao Dim conn As OleDbConnection = New OleDbConnection(conStr) ' Cria o objeto data adapter Dim da As OleDbDataAdapter = New OleDbDataAdapter(sqlStr, conn) ' Cria o objeto dataset e preenche-oDim ds As DataSet = New DataSet() da.Fill(ds, "Funcionários") ' Anexa o DefaultView do dataset ao datagrid DataGrid1.DataSource = ds.DefaultViewManager End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' Cria a string de conexão Dim conStr As String = "Provider=Microsoft.JET.OLEDB.4.0;data source=c:\teste\northwind.mdb" Dim sqlStr As String = "SELECT * FROM Funcionários" ' Cria o objeto para conexao Dim conn As OleDbConnection = New OleDbConnection(conStr) ' Cria o objeto data adapter Dim da As OleDbDataAdapter = New OleDbDataAdapter(sqlStr, conn) ' Cria o objeto dataset e preenche-o Dim ds As DataSet = New DataSet()da.Fill(ds, "Funcionários") ' Anexa o DefaultView do dataset ao datagrid Dim dv As DataView = ds.Tables("Funcionários").DefaultView
ListBox1.DataSource = dv ListBox1.DisplayMember = "Nome" End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim conStr As String = "Provider=Microsoft.JET.OLEDB.4.0;data source=c:\teste\northwind.mdb" Dim sqlStr As String = "SELECT * FROM Funcionários" Dim conn As OleDbConnection = New OleDbConnection(conStr) Dim da As OleDbDataAdapter = New OleDbDataAdapter(sqlStr, conn) Dim ds As DataSet = New DataSet() da.Fill(ds, "Funcionários") Dim dv As DataView = ds.Tables("Funcionários").DefaultView
ComboBox1.DataSource = dv ComboBox1.DisplayMember = "Nome" End Sub
End Class |
Agora é só executar o projeto e preencher os controles vinculados conforme abaixo:
Você poderia dar uma otimizada no código acima .
Terminei mais um artigo VB.NET , até o próximo
...
José Carlos Macoratti