VB.NET 2008 - Criando uma aplicação completa de acesso a dados


Este é um tutorial para iniciantes.

Se você não se considera um iniciante e já sabe como usar os assistentes para criar um banco de dados, tabelas, campos, definir campos, índices , chaves primárias , datasets , conexões e formulários vinculados a dados pode interromper a leitura neste ponto.

Se você esta começando agora, não sabe nada disso e pretende usar o Visual Basic 2008 Express Edition como sua ferramenta de aprendizado você esta no lugar certo. Continue a leitura e aproveite...

Criando uma aplicação completa com o Visual Basic 2008 Express e seus assistentes de configuração é , como diria o dito popular: "Mel na chupeta".

Se você deseja aprender Visual Basic , esta começando agora , e pretende usar o VB 2008 Express Edition (o mesmo é válido para o Visual Studio 2008 que é uma ferramenta mais completa mas que vai lhe custar um bom pulado de dolares...) então arregace as mangas e prepare o mouse pois , como você vai verificar nesta primeira parte, não vai digitar uma única linha de código sequer e vai criar um formulário para cadastrar , alterar, excluir e navegar pelos registros de uma tabela apenas usando os assistentes.

O que você pode esperar desse tutorial ?

Esse tutorial tem o objetivo de mostrar como usar as seguintes técnicas:

- Criar banco de dados , tabelas , campos , índices e definir chave primária no SQL Server 2005 Express;
- Criar uma conexão com o banco de dados;
- Criar DataSets;
- Criar formulários com dados vinculados com operações básicas CRUD - Create , Update e Delete;

Do que você vai precisar para começar ?

Você vai ter que possuir uma conexão com a internet para efetuar o download das ferramentas usadas neste curso.(Se você não possuir uma conexão pode adquirir o CD do curso que contém todas as ferramentas prontas para instalar)

Fazendo o download das ferramentas:

1 - Faça o download do Visual Basic 2008 Express Edition - VB 2008 Express

Ele é grátis e após o download você deve se registrar para validar a sua ferramenta e obter algumas ferramentas adicionais

2 - Faça o download do SQL Server 2005 Express Edition - SQL Server 2005 Express

Após instalar as duas ferramentas você esta pronto para iniciar e acompanhar o curso.

Começando pelo começo : Criando uma aplicação Windows completa.

Abra o seu Visual Basic 2008 Express Edition e crie um novo projeto da seguinte forma:

      ou

Será apresentada a janela new Project , selecione o template Windows Forms Application e informe o nome: appCompleta1;

Será criado um novo projeto e na janela Solution Explorer você verá o formulário form1.vb criado por padrão;

Vamos criar o banco de dados que será usado na aplicação. Vamos fazer isso no próprio IDE do VB 2008;

No menu Data selecione a opção Add New Data Source...;

Na janela - Data Source Configuration Wizard - selecione a opção Database;

Na janela Data Source Configuration WIzard vamos selecionar uma nova conexão clicando no botão : New Connection...;

Na janela Add Connection vamos alterar a opção clicando no botão Change...;

Selecione a opção Microsoft SQL Server DataBase File - e clique no botão OK;

Nota: Se desejar que esta opção sempre seja oferecida marque a opção - Always use this selection

Como desejamos criar um novo banco de dados informe um nome para identificar o banco de dados. Eu usei o nome Macoratti. A seguir clique no botão OK;

A seguir clique no botão Sim para confirmar a criação do banco de dados no SQL Server 2005 Express;

O Banco de dados será apresentado na janela e você poderá visualizar a string de conexão. Para continuar clique no botão Next>;

Aqui ocorre um evento muito importante. Preste atenção... !!!

É apresentada uma janela informando que a conexão que você selecionou usa um banco de dados local que não esta no projeto atual, e, em seguida vem a pergunta: Você deseja copiar o arquivo para o projeto e modificar a conexão ?

É aqui que muitos , por não prestarem atenção, perdem noites de sono...

Veja a mensagem logo abaixo que procura esclarecer o que esta acontecendo. Leia com atenção (já traduzida) :

"Se você copiar o arquivo de dados para o seu projeto, ele será copiado para o diretório de saida (AppData) toda a vez que você rodar a aplicação."

Ora, isso significa que se você rodar a aplicação e gravar alguns dados no banco de dados da próxima vez que executar a aplicação o banco de dados será copiado para o seu projeto e dos dados serão perdidos !!! Entendeu ???

Uma pausa para explicar o que esta acontecendo...

Um arquivo de banco de dados local pode ser incluído como um arquivo em um projeto e a primeira vez que você faz a conexão da sua aplicação com o arquivo de banco de dados local você pode escolher entre criar uma cópia do banco de dados no seu projeto ou fazer a conexão com o arquivo de banco de dados existente na localização original onde foi criado.

Se você escolher que deseja se conectar com um arquivo já existente , então uma conexão será criada da mesma forma que uma conexão remota é criada e o banco de dados vai permanecer na sua localização original.

Se você escolher que deseja copiar o banco de dados para o seu projeto o Visual Basic cria uma cópia do arquivo de banco de dados e o inclui no seu projeto modificando a conexão de forma que ela agora irá apontar para o arquivo de banco de dados no seu projeto e não para a localização original do arquivo de banco de dados.

Quando você constrói o seu projeto através da opção Build, o arquivo de banco de dados pode ser copiado da pasta raiz do projeto para a pasta de saída bin (selecione a opção Show All Files na janela Solution Explorer para ver a pasta bin).

Este comportamento é configurado pela propriedade Copy to Output Directory do arquivo e depende do banco de dados que você esta usando:

O arquivo de banco de dados na pasta raiz do seu projeto é alterado somente quando você editar o esquema do banco de dados através do Server Explorer/Database Explorer ou outra ferramenta Visual. (Visual Database Tools)

O comportamento do banco de dados depende então da configuração da propriedade Copy to Output Directory que é descrita a seguir:

Copy to Output Comportamento
Copy if newer (padrão para arquivos.sdf) O banco de dados é copiado do diretório do projeto para o diretório bin na primeira vez que o projeto é construído(Build). Após isso , cada vez que você constrói o projeto , a propriedade Date Modified do arquivo é comparada e se o arquivo no diretório do projeto é mais recente ele é copiado para a pasta bin substituindo o arquivo lá existente. Se o arquivo na pasta bin for mais recente o arquivo não é copiado. Desta forma cada vez que você roda sua aplicação faz e salva alterações nos dados , elas serão visíveis na próxima vez que você rodar a aplicação.
Obs: Esta opção não é recomendada para arquivos .mdb ou arquivos .mdf pois o arquivo de banco de dados pode mudar mesmo quando não houver alterações de dados; se você abrir uma conexão expandindo as tabelas no DataBase Explorer pode marcar o arquivo como mais recente.
Copy always (padrão para .mdf and .mdb) O arquivo de banco de dados é copiado da pasta do projeto para a pasta /bin cada vez que você constrói a aplicação (Build). Cada vez que você constrói a aplicação e salva as alterações nos dados , estas mudanças são sobrescritas quando o arquivo original é copiada para a pasta /bin substituindo a cópia que você acabou de alterar. Você não vê as alterações na próxima vez que rodar a aplicação. Qualquer mudança feita nos dados na pasta de saída será sobrescrita na próxima vez que a aplicação for executada..
Do not copy O arquivo nunca é copiado ou sobrescrito pelo sistema. Como a aplicação criar uma conexão dinâmica que aponta para o banco de dados no diretório de saída , esta configuração somente funciona para banco de dados local quando você copia manualmente o arquivo você mesmo. Você terá que copiar o arquivo para a pasta de saída depois de definir esta configuração.

Na próxima janela marque a opção para salvar a string de conexão e clique no botão Next>;

Como ainda não criamos o banco de dados vamos criar um dataset vazio informando o nome MacorattiDataSet e clicando em FInish;

Agora vamos criar a tabela. Abra o Database Explorer e clique com o botão direito do mouse sobre o objeto Table e selecione a opção Add New table;

A seguir defina três campos na tabela: clienteID , nome e email conforme abaixo. Defina também o campo clienteID como sendo a chave primária e do tipo identity;

Salve a tabela com o nome Clientes;

Clique sobre a tabela criada e na opção Show Table Data informe alguns valores conforme a figura;

Agora abra o DataSet criado e arraste a tabela Clientes para o descritor dataset;

Selecionando o formulário , form1.vb, e abrindo a janela Show Data Sources , iremos ver o dataset com os campos definidos;

Arraste o dataset Clientes para o formulário usando o modo Details e você verá a criação dos objetos BindingSource, BindingNavigator;

Pronto ! agora é só executar a aplicação para verificar que o acesso a dados foi concluída, a navegação pelos registros também esta ativa e as opções para alterar e excluir dados foram criadas com sucesso. Não foi necessário nenhuma ferramenta acional além do VB 2008 Express.

]

Concluímos que o comportamento apresentado é o mesmo que no VB 2005 Express. As novidades no VB 2008, com relação ao acesso a dados, ficam por conta do LINQ que irei tratar em outros artigos.

Eu sei é apenas VB.NET mas eu gosto.


José Carlos Macoratti