ADO.NET - Carregando um ListBox com dados do SQL Server


Neste artigo vou mostrar rapidamente como você pode carregar dados de uma tabela de um banco de dados SQL Server para um controle ListBox de acordo com uma seleção onde o usuário informa o parâmetro para filtrar os dados.

Neste projeto eu vou acessar o banco de dados Teste presente no meu SQL Server (local) e selecionar registros da tabela Clientes.

O usuário deve informar o código do cliente em uma caixa de texto  e os dados com o nome da empresa para os clientes cujos códigos contenham o parâmetro informado serão exibidos em um controle ListBox.

A primeira coisa a fazer e usar o namespace -   Imports System.Data.SqlClient  pois vou acessar o SQL Server

1- Inicie o Microsoft Visual Studio .Net 7.0 e abra um novo projeto selecionando - New Project.

2- Na janela New Project Selecione em Project Type : Visual Basic Projects e em Templates: Windows Application . Vamos dar o nome ao nosso projeto de MostraDados. No final clique em OK.

No formulário padrão insira os controles : label , TextBox , button e listbox conforme o layout abaixo:

 Vamos criar uma rotina para montar a string de conexão ; a rotina criaStringConexao tem o seguinte código:

 

Function CriaStringConexao(ByVal strServer As String, _

ByVal strDatabase As String) As String

Dim strTemp As String

 

strTemp = "Provider=SQLOleDB; Data Source=" & strServer & ";"

strTemp &= "Initial Catalog=" & strDatabase & ";"

strTemp &= "Integrated Security=SSPI"

 

Return strTemp

 

End Function

Agora basta você inserir o código que irá carregar os dados no ListBox de acordo com argumento informado pelo usuário:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCarregaDados.Click

 

Dim ocmdCliente As OleDb.OleDbCommand

Dim odrCliente As OleDb.OleDbDataReader

Dim strSQL As String

'-- Cria a string SQL para selecionar os dados da tabela Clientes do banco de dados Teste

strSQL = "Select NomeDaEmpresa From Clientes Where CódigoDoCliente Like '" & Me.txtNomeCliente.Text & "%'"

 

'-- tratamento de erros

Try

'-- Cria uma instância do comando

ocmdCliente = New OleDb.OleDbCommand()

 

With ocmdCliente

  '-- Define a conexao de um comando e o texto do comando

  .Connection = New OleDb.OleDbConnection(CriaStringConexao("(local)", "Teste"))

  .Connection.Open()

  .CommandText = strSQL

  '-- define uma instancia de um data reader

  odrCliente = .ExecuteReader(CommandBehavior.SequentialAccess)

End With

 

'-- inclui os itens no listbox

With lstDados

  .Items.Clear()

  .BeginUpdate()

  '

  Do While odrCliente.Read

      .Items.Add(odrCliente.Item("NomeDaEmpresa"))

  Loop

  .EndUpdate()

End With

 

Catch oexData As OleDb.OleDbException

   MsgBox(oexData.Message)

End Try

End Sub

 O comando SQL usado é o seguinte:

strSQL = "Select NomeDaEmpresa From Clientes Where CódigoDoCliente Like '" & Me.txtNomeCliente.Text & "%'"

Nele eu estou usando a palavra LIKE para selecionar os dados. Como o código do cliente é do tipo String estou envolvendo o argumento entre aspas simples ('). Assim se o cliente informar a letra A teremos:

Select NomeDaEmpresa From Clientes Where CódigoDoCliente Like 'A%'

O resultado exibido deverá ser parecido com:

Até a próxima dica VB.NET...

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