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.)
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Curso C# Básico - Vídeo Aulas
Curso Fundamentos da Programação Orientada a
Objetos com VB .NET