Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

birib

Carregar Dados BD ListView

Recommended Posts

Bom dia pessoal do forum!

Tenho a seguinte rotina para adcionar as colunas do meu BD para uma listView.

Nela também adciono os valores de cada coluna como subItems da listView.

 

Private Sub carregaCrono(ByVal lst As ListView, ByVal query As String)
       Dim ch As New ColumnHeader
       Dim lstItem As New ListViewItem

       'Limpa o listView
       lst.Columns.Clear()
       lst.Items.Clear()
       'Abre a conexao
       conexao.Open()
       Dim cmd As New OleDbCommand(query, conexao)
       'Executa a consulta criando um datareader
       Dim dr As OleDbDataReader = cmd.ExecuteReader(CommandBehavior.Default)
       'Exibe o resultado no listBox
       Dim i As Integer
       'Percorre o datareader
       Do While dr.Read
           'Le o primeiro campo do datareader
           For i = 1 To dr.FieldCount - 1
               ch.Text = dr.GetName(i)
               lstItem.Text = dr.GetValue(i).ToString
               lstItem.SubItems.Add(dr.GetValue(i).ToString)

           Next i

           lst.Columns.Add(ch)
           lst.Items.Add(lstItem)
       Loop
       ' Fexa a conexao
       conexao.Close()
   End Sub

 

No evento Load do meu form chamo esta rotina e passo os parâmetros corretamente

carregaCrono(ListView1, "SELECT * FROM Cronograma")

O problema é que está adcionando somente a ultima coluna do BD e seu valor, o resto não adciona na listView.

Alguém poderia dar alguma dica para me ajudar?

 

Agradeço :joia: :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu coloco este código dentro do for ele gera o seguinte erro:

:!: Não é possível adicionar ou inserir o item 'Data' em mais de um local. Primeiro você precisa removê-lo do local atual ou cloná-lo.

Nome do parâmetro: ch

 

:(

 

Consegui preencher o ListView com outro código usando instanciando dataAdapters e dataSet:

Private Sub carregaCron()
       'Prenche o Dataset
       daCron.Fill(ds, "Cronograma")
       daPosto.Fill(ds, "Posto")
       'Limpa os itens do List
       lstCronograma.Items.Clear()
       'Percorre a tabela e preenche o list
       Dim i As Integer
       For i = 0 To ds.Tables("Cronograma").Rows.Count - 1
           lstCronograma.Items.Add(ds.Tables("Cronograma").Rows(i)("Posto_Coleta"))
           lstCronograma.Items(i).SubItems.Add(ds.Tables("Cronograma").Rows(i)("Data"))
           lstCronograma.Items(i).SubItems.Add(ds.Tables("Cronograma").Rows(i)("Litros_Leite"))
           lstCronograma.Items(i).SubItems.Add(ds.Tables("Cronograma").Rows(i)("Observacoes"))
           lstCronograma.Items(i).SubItems.Add(ds.Tables("Cronograma").Rows(i)("Codigo"))
       Next
   End Sub

 

Eu consigo até editar no banco só não estou conseguindo atualizar minha ListView, que fica com os dados em uma linha antes da edição e outra linha pós edição.

 

Alguém poderia me ajudar?

 

Obrigado e abraço a todos :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.