VB  .NET - Inicializando uma lista e exibindo registros do MySql


 

 Neste artigo vou mostrar como inicializar uma lista com dados  a partir de um banco de dados MySQL e exibir registros selecionados em um TextBox usando a linguagem VB .NET.


O Data Binding é a maneira mais simples e fácil de acessar dados mas ela não é muito flexível. Para te dar mais controle sobre o que esta acontecendo usar os recursos da ADO .NET e dos provedores de dados é um melhor caminho (talvez o melhor caminho seja usar uma ferramenta ORM).

 

Então neste artigo vou mostrar como acessar o MySQL e inicializar  uma lista que no exemplo será um controle ListBox. Com a lista populada basta selecionar um item da lista para exibir os detalhes do item atual em controles TextBox.


Vamos acessar o banco de dados Cadastro criado no MySQL e a tabela Clientes que tem a seguinte estrutura: id, nome, cpf e email

 

 

Recursos Usados :

Criando o projeto Windows Forms

Abra o VS 2017 Community e crie um novo projeto (File-> New Project) usando a linguagem Visual Basic e o template Windows Classic Desktop ->Windows Forms Application(.NET Framework)

Informe um nome a seu gosto. Eu vou usar o nome vbn_MySQLista

A seguir inclua no projeto uma referência à biblioteca MySql.Data via Nuget (Tools->Nuget Package Manager-> Manage Nuget Packages for Solution)

Vamos incluir uma referência ao System.Configuration no projeto pois vamos acessar a string de conexão que será armazenda no arquivo app.Config. (Project->Add Reference)

Para concluir inclua no arquivo App.config a string de conexão usada para acessar o banco de dados Cadastro do MySQL:

...
<connectionStrings>
      <add name="conexaoMysql" connectionString="Server=localhost;Database=Cadastro;Uid=root;Pwd=******;" providerName="MySql.Data" />
</connectionStrings>
...

A partir da ToolBox inclua no formulário Form1.vb os seguintes controles:

Disponha os controles conforme mostra a imagem da figura abaixo:

Implementando o código no formulário

Vamos agora definir o código no formulário Form1.vb começando com a declaração dos namespaces:

Imports System.Configuration
Imports MySql.Data.MySqlClient

No início do formulário vamos obter a string de conexão e declarar as variáveis para acessar os dados:

Dim stringConexao As String = ConfigurationManager.ConnectionStrings("ConexaoMySql").ConnectionString()
Dim conexaoMySql As MySqlConnection
Dim comandoMySQl As MySqlCommand
Dim leitorDataReader As MySqlDataReader

No evento Click do botão de comando Acessar Dados digite o código a seguir:

 Private Sub btnAcessarDados_Click(sender As Object, e As EventArgs) Handles btnAcessarDados.Click
        Dim consultaSql As String = "Select * from Clientes"
        Try
            conexaoMySql = New MySqlConnection(stringConexao)
            comandoMySQl = New MySqlCommand(consultaSql, conexaoMySql)
            conexaoMySql.Open()
            leitorDataReader = comandoMySQl.ExecuteReader()
            While (leitorDataReader.Read())
                lbDados.Items.Add(leitorDataReader.Item("Nome"))
            End While
        Catch ex As Exception
            MessageBox.Show("Erro  :" + ex.Message)
        Finally
            leitorDataReader.Close()
            conexaoMySql.Close()
        End Try
    End Sub

Este código vai acessar a tabela Clientes e exibir o campo nome no controle ListBox.

A seguir no evento SelectedIndexChanged do ListBox defina o código abaixo para exibir o registro do nome selecionado:

 Private Sub lbDados_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lbDados.SelectedIndexChanged
        If lbDados.SelectedIndex < 0 Then
            Return
        End If
        Try
            Dim nome As String = lbDados.SelectedItem.ToString().Replace("'", "''")
            Dim consultaSql As String = "Select * from Clientes where nome = '" & nome & "'"
            comandoMySQl = New MySqlCommand(consultaSql, conexaoMySql)
            comandoMySQl.Connection = conexaoMySql
            conexaoMySql.Open()
            leitorDataReader = comandoMySQl.ExecuteReader()
            leitorDataReader.Read()
            txtID.Text = leitorDataReader("Id").ToString()
            txtNome.Text = leitorDataReader("Nome").ToString()
            txtCPF.Text = leitorDataReader("CPF").ToString()
            txtEmail.Text = leitorDataReader("Email").ToString()
        Catch ex As Exception
            MessageBox.Show("Erro : " & ex.Message)
        Finally
            leitorDataReader.Close()
            conexaoMySql.Close()
        End Try
    End Sub

Neste código obtemos o nome selecionado e obtemos o registro correspondente na tabela Clientes e a seguir exibimos os valores no TextBox.

Executando o projeto iremos obter o resultado abaixo :

Você pode ajustar o código incluindo muitas personalizações para atender o seu objetivo. (Que tal criar uma camada de acesso dados ?)

Fique a vontade...

Pegue o código do projeto aqui :   Vbn_MySQLista.zip

"Se alguém quer vir após mim (Jesus), a si mesmo se negue, tome a sua cruz e siga-me" (Mateus 16:24).

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti