Como utilizar Typed Datasets com o Visual Basic.NET

O objetivo deste tutorial é mostrar como utilizar Typed Datasets com o Visual Basic.NET, um novo recurso presente no ADO.NET. Não será explicada a arquitetura de dados do ADO.NET (tecnologia de acesso a dados do .NET Framework) pois você aprenderá a criar e utilizar esse ótimo e inovador recurso de uma maneira muito simples ...

04/06/03h

Diminuir o tamanho das letras Aumentar o tamanho das letras

Microsoft .NET

O objetivo deste tutorial é mostrar como utilizar Typed Datasets com o Visual Basic.NET, um novo recurso presente no ADO.NET. Não será explicada a arquitetura de dados do ADO.NET (tecnologia de acesso a dados do .NET Framework) pois você aprenderá a criar e utilizar esse ótimo e inovador recurso de uma maneira muito simples.

Para entender este tutorial você precisa ter conhecimentos em Visual Basic.NET e ADO.NET (para saber mais sobre isso consulte os tutoriais "Mudanças do ADO para o ADO.NET" e "Acesso a dados com o VB.NET").

Softwares utilizados:
- Microsoft Visual Studio.NET 2003 Enterprise Architect (também conhecido como "Everett" ou versão 7.1) - Beta Final
- Microsoft SQL Server 2000 Personal Edition

Requisitos do sistema:
- Processador Intel Pentium II /AMD K6-2 a partir de 450 Mhz (Pentium III/AMD Duron a partir de 600 Mhz recomendados)
- Memória RAM: 96 MB para Windows 2000 Pro (Recomendado 128 MB)
                       192 MB para Windows 2000 Server (Recomendado 256 MB)
                         96 MB para Windows XP Home (Recomendado 160 MB)
                       192 MB para Windows XP Pro (Recomendado 256 MB)
                       192 MB para Windows Server 2003 (Recomendado 256 MB)

- 4.1 GB no drive da instalação e 900 MB no drive do sistema
- Sistema Operacional: Windows 2000*, Windows XP ou Windows Server 2003
    Obs: É possível executar aplicações desenvolvidas com o VS.NET no Windows 98/Me/NT 4 mas não é possível desenvolver as aplicações nesses sistemas.
    * o Windows 2000 Datacenter Server não é suportado.     
- Drive de CD-ROM ou DVD-ROM
- Internet Explorer 5.0 ou superior
- Placa de vídeo e monitor que suporte resolução de 800x600 e 256 cores (Recomendado High Color 16-Bit)
- Mouse.

O que é um Typed Dataset?
Ao se desenvolver uma aplicação que acesse dados, seja utilizando Datasets normais ou Recordsets do antigo ADO, nos deparamos com alguns problemas como:

- Quando não nos lembramos do nome de um campo ou tabela temos que parar de desenvolver a aplicação para consultarmos o aplicativo de banco de dados ou então o nome dos objetos anotados ou impressos em algum lugar;

- Falhas como nomes de campos e tabelas escritos errado ou valores numéricos atribuídos a campos do tipo texto que são detectados somente em tempo de execução, atrasando o processo de depuração dos erros.

Para aumentar a produtividade, acabando com os problemas citados acima e ainda outros de menor relevância, foram criados os Typed Datasets: eles também oferecem uma performance melhor para aplicações devido à conversão de tipos ser desnecessária.

Um Typed Dataset é quase totalmente igual a um Dataset "normal": ele possui os mesmos métodos, eventos e propriedades, mas além disso, quando um Typed Dataset é gerado também é criado um arquivo com um shema XML (arquivo XSD), que contém a descrição da(s) tabela(s) e dos campos e seus respectivos tipos e que são disponibilizados para a IDE, que por sua vez pode inclusive completar os nomes de campos durante a digitação assim como acontece com as propriedades.

Vejamos agora como criar um Typed Dataset.

Abra o Visual Studio.NET e crie um novo projeto WinForms do Visual Basic.NET:


Novo projeto

Em Name digite "TypedDatasets". Clique em OK. Agora iniciaremos a construção do formulário. Coloque um componente Button, renomeie-o como btnMostrar e um componente ListView, nomeando-o Lista. Seu form deve ficar com a seguinte aparência:


Layout do Form

Começaremos agora a criar os objetos de acesso a dados: como dito no início, não será explicado como criar esses componentes passo-a-passo pois você já deve saber como fazer isso (caso contrário consulte os tutoriais citados no início deste tutorial).

Adicione ao form um objeto SqlConnection de nome "Conexao" e um objeto SqlDataAdapter de nome "Adapter". A conexão deve ser feita com o banco de dados Northwind do SQL Server 2000. O DataAdapter deve ser preenchido com a seguinte query "SELECT * FROM Customers".

Veja os objetos já criados (clique na imagem para vê-la por inteiro):


Objetos Criados

Agora clique com o botão direito do mouse na área de objetos invisíveis (onde estão os objetos "Conexao" e "Adaper") e será aberto um menu suspenso, clique em "Generate Dataset...":


Generate Dataset...

Começaremos a criar nosso Typed Dataset. A seguinte janela será apresentada:


Criando o DataSet

Selecione a opção New e digite o nome DSTyped. No quadro que contém as tabelas presentes no projeto aparecerá a única tabela que adicionamos ao nosso: a tabela Customers. Selecione-a e deixe também selecionada a opção "Add this dataset to the designer". Clique em OK e o Dataset será criado.

Note que o nome dele será "DSTyped1" e mesmo que tenhamos digitado somente "DSTyped", o VS.NET adicionará o número para que Datasets herdados desse tenham o mesmo nome e numeração seqüencial - mas você pode selecionar o Dataset e mudar seu nome na janela Properties.

Veja a figura abaixo (clique na imagem para vê-la por inteiro):


Dataset criado

Na janela Solution Explorer podemos visualizar o arquivo "DsTyped.xsd": nesse arquivo está armazenada a estrutura da tabela pertencente ao DataSet DsTyped1 (como você já deve saber um DataSet pode contar mais de uma tabela, nesse caso todas ficaram no mesmo arquivo XSD):


Arquivo DSTyped.xsd

Para visualizar o conteúdo desse arquivo, clique duas vezes sobre ele. Veremos agora o schema do Dataset (clique no detalhe para ver a imagem por inteiro):


Tabela "Customers" no schema Xsd

Ao visualizar a imagem inteira você deve ter percebido que na Toolbox existem componentes como "Relation" e "Key". Utilizar esses componentes é muito interessante especialmente quando temos mais de uma tabela no schema, podendo assim criar relacionamentos entre elas ("Relation") e chaves secundárias ("Key", que também pode ser usado para chaves primárias), além de muitos outros objetos existentes no schema.

Aqui não faremos isso pois temos apenas uma tabela e não necessitamos de nenhuma alteração especial em sua estrutura.

Vamos agora dar vida ao programa: o código abaixo deve ser inserido no evento Form1_Load e para isso clique duas vezes numa área vazia do form. Ele abre a conexão com o banco de dados e preenche o DataSet com os dados da tabela Customers.

Conexao.Open()
Adapter.Fill(DsTyped1, "Customers")
Conexao.Close()

Agora vamos adicionar o código ao botão. Clique duas vezes no botão btnMostrar e digite o seguinte código no evento btnMostrar_Click:

  Dim Registro As DSTyped.CustomersRow
  Lista.View = View.List
  For Each Registro In DsTyped1.Customers.Rows
    Lista.Items.Add(Registro.CompanyName & "/" & Registro.Country)
  Next

Abaixo podemos ver o IntelliSense (recurso que completa o código durante a digitação) mostrando os nomes dos campos - o que facilita muito o desenvolvimento (clique no detalhe para ver a imagem por inteiro):


Nomes dos campos no IntelliSense

Veja como seria o código para listar os valores sem o uso de um Typed Dataset :

  Dim DataRow1 As Data.DataRow
  Lista.View = View.List
  For Each DataRow1 In DsTyped1.Tables("Customers").Rows
    Lista.Items.Add(DataRow1.Item("CompanyName") & "/" & DataRow1.Item("Country"))
  Next

Note que os nomes de tabelas e campos tem que ser passadas como índices e para isso devemos saber seus nomes pois o IDE não tem onde buscá-los para nos apresentar e isso representa uma grande queda de produtividade e do desempenho da aplicação. Após digitar o código (o primeiro mais acima), execute sua aplicação  pressionando F5. Após o form ser executado clique no botão "Mostrar".

Veja o resultado:


Programa em execução após pressionado o botão "Mostrar"


Conclusão
Há muitas razões para o uso dos Typed Datasets, particularmente penso que eles serão muito mais utilizados do que Datasets comuns pois trazem enormes vantagens como a facilidade de disponibilizar os nomes de tabelas e campos durante a digitação do código, detectar erros de nomes e tipos durante a compilação, facilidades do schema em XML para visualizar a estrutura do DataSet além de melhorar a performance da aplicação ;) ...



Marcas Registradas

Visual Basic.NET, Visual Studio.NET, Windows, SQL Server são marcas registradas da Microsoft Corporation.
Todos os demais nomes registrados, marcas registradas ou direitos de uso citados neste TM pertencem a seus respectivos proprietários.

 

Autor original:  ClawHammer
Direitos Autorais:  BABOO




imprima este artigo
envie este artigo via e-mail

 

Artigos relacionados


Mais Notícias desta Área

Últimas Notícias
 
 Software  |  Hardware  |  Segurança  |  Tecnologia  |  Tutoriais  |  Download  |  Web  | Desenvolvimento  |  Fórum 
 Mundo Corporativo  |  Carreira  |  Mercado  |  Telecom  |  Servidores  |  Tecnologia 
    BABOO é um site brasileiro de TI focado em informática, tecnologia, software,hardware, tutoriais e downloads, e soluções de dúvidas através do nosso fórum.

 

Artigos do BABOO