VB .NET - Login com MySQL - II
No artigo de hoje vamos recordar como fazer o login em um banco de dados MySQL usando a linguagem VB .NET: criando uma camada de acesso a dados. |
Continuando a primeira parte do artigo vamos melhorar o nosso projeto criando uma camada de acesso a dados.
Podemos fazer isso criando uma simples classe ou incluindo um novo projeto na solução.
Vamos criar uma classe chamada DALHelper em nosso projeto e nela definir o código para acessar o banco de dados SQL Server.
Vamos inicialmente usar ADO .NET para mostrar como acessar dados usando os objetos: SqlConnection, SqlCommand, DataSet, DataTable, etc.
Nosso objetivo será remover da interface do usuário a responsabilidade para acessar os dados.
Para isso vamos substituir o módulo ModCon.vb usado para fazer a conexão visto que o código existente no módulo fere o princípio do encapsulamento da OOP pois pode ser acessado de qualquer parte do projeto.
Criando a camada de acesso a dados : DALHelper
Abra o projeto criado na primeira parte do artigo e inclua uma classe chamada DALHelper com o código abaixo:
Imports System.Configuration
Imports MySql.Data.MySqlClient
Public Class DalHelper
Private Shared Function GetDbConnection() As MySqlConnection
Try
Dim conString As String = ConfigurationManager.ConnectionStrings("conexaoMySql").ConnectionString
Dim connection As MySqlConnection = New MySqlConnection(conString)
connection.Open()
Return connection
Catch ex As Exception
Throw ex
End Try
End Function
Public Overloads Shared Function GetDataTable(ByVal sql As String) As DataTable
Using connection As MySqlConnection = GetDbConnection()
Using da As New MySqlDataAdapter(sql, connection)
Dim table As New DataTable
da.Fill(table)
Return table
End Using
End Using
End Function
End Class
|
Nossa camada de acesso a dados vai tratar apenas do Login e por isso criamos os métodos estáticos :
Precisamos então incluir no arquivo App.Config a nossa string de conexão :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<connectionStrings>
<add name="conexaoMySql" connectionString="Data source=localhost;userid=root;password=gpxpst;database=cadastro"/>
</connectionStrings>
</configuration>
|
Agora podemos remover o módulo ModCon.vb do projeto, e, com isso agora ficou mais fácil dar manutenção na lógica de acesso a dados e na string de conexão que esta centralizada no arquivo de configuração.
Falta definir o código no formulário para fazer o login. Veja como ficou :
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
If Trim(txtUsuario.Text) = "" Or Trim(txtSenha.Text) = "" Then
MsgBox("Informe as suas credenciais para Login!", vbExclamation, "Dados Inválidos !")
Else
Dim sql As String
sql = "SELECT * FROM Usuarios WHERE usuario = '" & txtUsuario.Text & "' AND senha = '" & txtSenha.Text & "'"
Dim dt As DataTable = DalHelper.GetDataTable(sql)
Try
If Not dt.Rows.Count > 0 Then
MsgBox("Login Falhou!", vbCritical, "Login inválido")
txtUsuario.Text = ""
txtSenha.Text = ""
txtSenha.Focus()
Else
MsgBox("Login realizado com Sucesso", vbInformation, "Login")
Me.Hide()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
|
Melhoramos um pouco o código pois não precisamos mais depender dos objetos do Connector MySQL para fazer a conexão.
Executando o projeto e informando as credenciais corretas do usuário teremos o seguinte resultado:
O código melhorou mas ainda temos estamos definindo objetos de acesso a dados no formulário como a consulta SQL e o DataTable.
Na próxima parte do artigo vamos criar uma camada de negócios para remover essas dependências da interface do usuário.
Pegue o código do projeto aqui : login2.zip
"E disse-lhes: Ide por todo omundo,
pregai o evangelho a toda criatura. Quem crer e for batizado será salvo; mas
quem não crer será condenado."
Marcos 16:15,16
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
C# - Criando uma aplicação com 3 camadas com MySQL - Macoratti
C# - Manutenção de dados com DataGridView no MySQL - Macoratti