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:

  1. Criar uma aplicação Windows Forms

  2. Criar e configurar um dataset com a ajuda do assistente de configuração de Data Source (Data Source Configuration Wizard.)

  3. Selecionar o controle a ser criado no formulário quando arrastar os itens da janela Data Sources.

  4. Criar um formulário com dados vinculados arrastando itens da janela Data Sources para o formulário.

  5. 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:

  1. O Visual Basic 2005 Express Edition instalado

  2. 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 :

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:

  1. NorthwindPaisesDS
  2. PaisesBindingSource
  3. PaisesTableAdapter
  4. PaisesBindingNavigator

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


Dim novoPaisID As Integer = 20

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


Try

    PaisesTableAdapter.Delete(20, "Pais atualizado")

Catch ex As Exception

    MessageBox.Show("Exclusão falhou...")

End Try


  atualizaDataset()

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:


José Carlos Macoratti