VB .NET - Preenchendo um ListView com um DataReader


Vamos preencher um controle ListView com os dados da tabela Products do banco de dados Northwind.mdf do SQL Server 2005 Express.

Nota: Se você não possui o banco de dados Northwind.mdf pegue aqui : Northwind

Para isso crie um novo projeto no VB 2008 Express Edition e no formulário padrão form1.vb inclua um controle MenuStrip com as opções : Preencher Lista e Sair e um controle ListView conforme o leiaute abaixo:

Agora no evento Click do item do menu Preencher lista inclua o seguinte código:

    Private Sub PreencherListaToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles  _ 
PreencherListaToolStripMenuItem1.Click

       'configura o ListView 
        Me.ListView1.View = View.Details
        Me.ListView1.GridLines = True
        Me.ListView1.FullRowSelect = True
        Me.ListView1.Columns.Add(New ColumnHeader)
        Me.ListView1.Columns(0).Text = "Codigo"
        Me.ListView1.Columns(0).Width = 80
        'define o cabeçalho do listview
        ListView1.Columns.Add(New ColumnHeader)
        ListView1.Columns(1).Text = "Produto"
        Me.ListView1.Columns(1).Width = 300
        'define a string de conexão e a instrução SQL
        Dim conn As New SqlClient.SqlConnection("Server = .\sqlexpress;Database = NorthWind; Integrated Security = SSPI;")
        Dim rdrQuery As String = "SELECT ProductName, ProductId FROM Products order by ProductID"
        Try
            conn.Open()
            'executa a consulta na conexão criada e gera o DataReader
            Dim cmd As New SqlClient.SqlCommand(rdrQuery, conn)
            Dim rdr As SqlClient.SqlDataReader = cmd.ExecuteReader()
           'percorre o datareader e preenche o ListView
            While rdr.Read()
                Dim lvItem As New ListViewItem(New String() {rdr.GetInt32(1).ToString, rdr.GetString(0)})
                Me.ListView1.Items.Add(lvItem)
            End While
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        Finally
            conn.Close()
        End Try

    End Sub

Executando o projeto iremos obter:

Aguarde mais dicas sobre VB .NET.

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

Referências:


José Carlos Macoratti