VB.NET - Preenchendo um controle ListBox


Para preencher uma caixa de listagem - ListBox - no VB .NET com os dados de uma tabela de um banco de dados podemos usar o objeto DataReader.

Neste artigo vamos preencher um listbox com os dados da tabela produtos do banco de dados Northwind.mdb.

Vou criar uma função que recebe dois parâmetros :  o nome do controle ListBox e a consulta SQL que será executada contra o banco de dados para obter os dados a serem exibidos.

Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

  1. Project Types : Visual Basic Projects
  2. Templates : Windows Forms
  3. Name : Preenche_ListBox
  4. Location : d:\vbnet

No formulário padrão insira os componentes : ListBox , Button , e Label , conforme figura abaixo:

No formulário , antes de qualquer declaração de função insira o código abaixo que torna a variável conexão visível em todo o formulário:

Dim conexao As New OleDbConnection()

No evento Load do formulário vou colocar o código que define a string de conexão com o banco de dados Northwind.mdb.

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        conexao.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\teste\Northwind.mdb"

End Sub

No evento Click do botão de comando - Button1 - vou colocar o código que chama a função carregaListBox :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        carregaListBox(Listbox1, "Select NomeDoProduto from produtos")
End Sub

A função - carregaListBox - recebe o nome do controle ListBox - ListBox1 , e, a string com o comando SQL , no caso - "Select NomeDoProduto from produtos"  ; onde iremos selecionar os nomes dos produtos da tabela produtos.

O código da função é o seguinte :

    Private Sub carregaListBox(ByVal lst As ListBox, ByVal query As String)
        lst.Items.Clear()
        ' abre a conexao
        conexao.Open()
        ' cria um comando select.
        Dim cmd As New OleDb.OleDbCommand(query, conexao)
        ' executa a consulta
        Dim db_reader As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.Default)

        ' exibe os resultados
        Dim texto As String
        Dim i As Integer
        Do While db_reader.Read
            texto = db_reader.Item(0).ToString
            For i = 1 To db_reader.FieldCount - 1
                texto &= vbTab & db_reader.Item(i).ToString
            Next i
            lst.Items.Add(texto)
        Loop
        ' fecha a conexao
        conexao.Close()
    End Sub

Ao executar o projeto e clicar no botão - Carregar Listbox - teremos a ListBox carregada como abaixo.

Ao clicar em um item da lista estamos exibindo o nome do item e o seu índice através da propriedade - SelectedItem e SelectedIndex. O código foi colocado no evento SelectedIndexChanged.

   Private Sub Listbox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
 Listbox1.SelectedIndexChanged
        Label3.Text = Listbox1.SelectedItem
        Label5.Text = Listbox1.SelectedIndex
    End Sub

Eu sei , é apenas VB .NET , mas eu gosto ...
 

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:


José Carlos Macoratti