Neste artigo vou mostrar como podemos tratar imagens e eventos de forma dinâmica simulando uma reserva de assentos bem como acessar o banco de dados MySQL para gravar e recuperar informações. |
Podemos usar diversas abordagens para persistir as informações e em nsso exemplo eu vou usar um abordagem simples e direta e para isso vamos implementar as seguintes funcionalidades:
Persistir as informações dos assentos reservados
Persistir as informações do cliente que fez a reserva
Persistir as informações da data e horário da reserva
Identificar o veículo para o qual a reserva foi feita
Recuperar todas essas informações para um determinado veículo
Vou utilizar um banco de dados MySQL por ser um banco de dados gratuito e fácil de instalar e usar. Vou criar um Schema chamado Cadastro e definir as seguintes tabelas:
Abaixo vemos as estruturas de cada tabela e a respectiva instrução SQL usada para sua criação:
use Cadastro; CREATE TABLE `clientes` ( `id` int(10) NOT NULL AUTO_INCREMENT, `nome` varchar(80) NOT NULL, `cpf` varchar(150) NOT NULL, `email` varchar(145) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; |
CREATE TABLE `Carro1` ( `id` int(10) NOT NULL AUTO_INCREMENT, `clienteid` int(10) NOT NULL, `data` DateTime NOT NULL, `hora` DateTime NOT NULL, `assento` int(10) NOT NULL, `reservado` boolean Default false, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; |
Esse modelo de domínio foi adotado por ser bem simples e facilitar o nosso desenvolvimento. Em um projeto mais complexo com certeza ele terá que ser revisto.
Recursos Usados
Criando uma camada de acesso a dados no projeto DAL
Vamos criar uma camada de acesso a dados em nossa aplicação de forma a separar as responsabilidades da camada de interface que é o nosso projeto Windows Forms.
Esse abordagem é muito recomendada para tornar o nosso projeto mais fácil de manter e escalar.
Vamos então incluir um novo projeto em nossa solução na opção File-> Add -> New Project;
A seguir selecione Visual Basic ->Windows Classick Desktop -> Class Library e informe o nome DAL (ou outro a seu gosto);
Após incluir o novo projeto vamos incluir uma referência a biblioteca MySql.Data neste projeto para podermos acessar o MySQL.
No menu Tools clique em Nuget Package Manager -> Manage Nuget Packages for Solution;
Selecione o item MySql.Data, marque o projeto DAL e clique no botão Install;
A seguir crie uma classe chamada AcessoBD nesta classe e defina o seguinte código no projeto
Imports System.Configuration Imports MySql.Data.MySqlClient Public Class AcessoBD Public Shared Function GetDbConnection() As MySqlConnection Public Shared Function ExecuteReader(sql As String) As IDataReader Public Function ExecuteNonQuery(sql As String) As Integer Public Shared Function ExecuteDataSet(sql As String) As DataSet Public Shared Function ExecuteDataSet() As DataSet Public Shared Function GetDataTable(sql As String, parameterNames As String(), tipoParametros As MySqlDbType(),
Public Shared Function GetDataTable(sql As String) As DataTable Public Shared Function SelectScalar(sql As String, parameterNames As String(), parametrosTipos As MySqlDbType(),
Public Shared Function SelectScalar(sql As String) As String Public Shared Function ExecuteScalar(sql As String) As Object Public Shared Function CRUD(sql As String, parameterNames As String(), tipo As MySqlDbType(),
Private Shared Sub FillParameters(command As MySqlCommand, parameterNames As String(), tipo As MySqlDbType(),
End Class |
Nesta classe definimos métodos estáticos (Shared) para acessar informações do MySQL de forma que não precisaremos criar uma instância da classe AcessoBD.
Este é um exemplo de uma camada de acesso a dados bem simples usando ADO .NET.
Precisamos agora incluir uma referência ao namespace System.Configuration no projeto e definir a string de conexão no arquivo App.Config do projeto DAL e do projeto Windows Forms conforme mostrado a seguir:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.data> <DbProviderFactories> <remove invariant="MySql.Data.MySqlClient" /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data> <connectionStrings> <add name="ConxaoMySQLDesenv" connectionString="Server=localhost;Port=3306;Database=cadastro;Uid=root;Pwd=gpxpst;" providerName="System.Data.MySqlClient" /> </connectionStrings> </configuration> |
Para concluir vamos incluir uma referência no projeto Windows Forms ao projeto DAL de forma a ter acesso à classe AcessoBD.
Clique com o botão direito sobre o projeto Windows Forms e a seguir em Add -> Reference;
Selecione o item Projects e marque o projeto DAL conforme abaixo:
Pronto. Agora já podemos implementar a persistência na camada de Interface.
Na próxima parte do artigo vamos implementar a persistência das informações no MySQL e recuperar as informações gravadas refletindo isso na camada de interface.
E agora, filhinhos, permanecei nele(Jesus); para que, quando ele se manifestar, tenhamos confiança, e não sejamos confundidos por ele na sua vinda. 1 João 2:28
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net