VB.NET - Tratando meus dados com métodos TableAdapter
Se você pegou o bonde andando e nunca ouviu falar nem sabe o que é um Adapter eu sugiro que você leia os seguintes artigos do meu site:
Este artigo irá mostrar como realizar as operações básicas para tratamento de dados (as famosas operações CRUD - read update delete) usando os novos recursos oferecidos na ADO.NET 2.0, ou seja , os TableAdapters.
Vou mostrar como você pode executar instruções SQL diretamente contra seu banco de dados usando os métodos DBDirect do TableAdapter.
Estes métodos fornecem um nível de controle detalhado sobre as atualizações da sua fonte de dados. Com eles você pode executar instruções SQL específicas e procedimentos armazenados para invocar métodos Insert , Update e Delete conforme a necessidade de sua aplicação.
Para atingir este objetivo iremos desenvolver as seguintes tarefas:
Criar uma aplicação Windows Forms
Criar e configurar um dataset com a ajuda do assistente de configuração de Data Source (Data Source Configuration Wizard.)
Selecionar o controle a ser criado no formulário quando arrastar os itens da janela Data Sources.
Criar um formulário com dados vinculados arrastando itens da janela Data Sources para o formulário.
Incluir métodos para acessar diretamente o banco de dados e realizar operações de inclusão, atualizações e exclusão.
Você vai precisar para acompanhar estas tarefas neste artigo:
O Visual Basic 2005 Express Edition instalado
O Banco de dados Northwind do SQL Server 2000 ou o Northwind.mdb do Access.(Vou usar o Northwind.mdb pois nem todos podem ter o SQL Server instalado.)
Criando uma aplicação Windows
1- Abra o Visual Basic 2005 e clique na opção Create Project.
2- Na janela New Project dê o seguinte nome ao projeto : tableAdpaterNET
3- Selecione Windows Application e clique em OK.
O projeto tableAdapterNET será criado e incluído na janela Solution Explorer.
Criando um Data Source a partir da sua fonte de dados
Vamos usar o -Data Source Configuration Wizard - para criar uma fonte de dados baseada na tabela Region deste banco de dados.(Faça uma cópia da tabela Region no banco de dados Northwind.mdb e nomeie a nova tabela como paises. Esta tabela será usada no exemplo deste artigo , ela é a cópia da tabela Region incluindo estrutura e dados.)
1- Acesse o Menu Data e clique em Show Data Sources
2- Na janela Data Sources, selecione Add New Data Source para iniciar o Data Source Configuration Wizard
3- Selecione a opção DataBase da janela Choose a Data Source Type e clique no botão Next.
4- Na janela Chosse Your Data Connection faça o seguinte :
Se já existir uma conexão com o banco de dados Northwind.mdb selecione-a no dropdownlist
Se ainda não existir clique no botão - New Connection - para iniciar a caixa de diálogo Add/Modify Connection
5- Na janela a seguir informe o nome da conexão como NothWindCS e clique no botão Next.
6- Expanda o nó Tables e escolha a tabela paises clicando a seguir no botão Finish.
Ao terminar o dataset NorthWindPaisesDS será incluído ao seu projeto e a tabela paises irá aparecer na janela Data Sources.
Incluindo controles no formulário para exibir dados
Para criar controles vinculados de dados no formulário arraste o nó principal da tabela paises da janela Data Sources para o formulário;
Um controle DataGridView e um tool
strip (BindingNavigator) para navegação
pelos registros irá aparecer no formulário. Os seguintes objetos será também incluídos na janela de componentes:
|
Incluindo botões que irão chamar os métodos DBDirect do TableAdapter
- Arraste três controles Button a partir da ToolBox para o formulário - form1.vb) abaixo do DataGridView - PaisesDataGridView.
- Define os seguintes valores para as propriedades Name e Text para cada Button:
Name | Text |
btnInserir | Incluir |
btnAtualizar | Atualizar |
btnDeletar | Deletar |
Incluindo código no evento Click de cada um dos botões
Vamos agora incluir o código pertinente a cada tarefa no evento Click de cada botão.
1-) Começando com o botão Incluir. Neste caso chamamos o método Insert do TableAdpater passando os valores para cada coluna como parâmetro.
Private
Sub InserirButton_Click(ByVal
sender As System.Object,
ByVal e As
System.EventArgs) Handles InserirButton.Click Dim novoPaisID As Integer = 20 Dim novoPaisNome As String = "Brasil" Try PaisesTableAdapter.Insert(novoPaisID, novoPaisNome) Catch ex As Exception MessageBox.Show("A inclusão falhou...") End Try atualizaDataSet() End Sub |
2-) O código para atualizar dados invoca o método Update do TableAdapter passando os valores originais e os novos valores para cada coluna como parâmetro.
Private
Sub btnAtualizar_Click(ByVal
sender As System.Object, ByVal e
As System.EventArgs) Handles
btnAtualizar.Click
Try PaisesTableAdapter.Update(novoPaisID, "Pais atualizado", 20, "Brasil") Catch ex As Exception MessageBox.Show("Atualização falhou...") End Try atualizaDataset() End Sub |
3-) A exclusão de um registro da tabela é feita usando o método Delete do TableAdapter passando os valores de cada coluna como parâmetro.
Private
Sub btnDeletar_Click(ByVal
sender As System.Object, ByVal e
As System.EventArgs) Handles
btnDeletar.Click
PaisesTableAdapter.Delete(20, "Pais atualizado") Catch ex As Exception MessageBox.Show("Exclusão falhou...") End Try
End Sub |
Para encerrar falta o código da rotina atualizaDataSet() que é mostrado abaixo:
Private
Sub RefreshDataset() Me.PaisesTableAdapter.Fill(Me.NorthwindPaisesDS.paises) End Sub |
Conclusão
Desta forma, em adição aos comandos InsertCommand, UpdateCommand e DeleteCommand, os TableAdapters são criados com métodos que podem ser executados diretamente contra uma fonte de dados. Estes métodos são conhecidos como DbDirect.
Os métodos TableAdapter.Insert, TableAdapter.Update, e TableAdapter.Delete podem ser chamados diretamente para efetuar a manipulação de dados em uma fonte de dados e foi isso que mostramos no exemplo acima.
Se você não quiser criar estes métodos defina a propriedade GenerateDbDirectMethods do TableAdapter como False na janela de propriedades.
Qualquer consulta incluída no TableAdapter em adição as consultas principais do TableAdpater são consultas únicas e não geram os métodos DbDirect.
Lembre-se que você deve ter permissão para executar os comandos INSERT, UPDATE e DELETE no banco de dados.
O objetivo foi apresentar o recurso de acesso direto a fonte de dados usando os métodos DbDirect do TableAdapter e o exemplo usado foi apresentado de forma bem simples para deixar claro como os métodos devem ser usados.
Concordo que o exemplo é pouco funcional mas eu estou levando em conta que você tem capacidade para incrementá-lo dando um tratamento mais eficiente do que o usado no artigo por razões didáticas.
Aguardo você no próximo artigo VB.NET...
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
José Carlos Macoratti