birib 0 Denunciar post Postado Maio 25, 2011 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
quintelab 91 Denunciar post Postado Maio 26, 2011 Acredito que esta parte do código: lst.Columns.Add(ch) lst.Items.Add(lstItem) deve ficar dentro do: For i = 1 To dr.FieldCount - 1 Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
birib 0 Denunciar post Postado Maio 27, 2011 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
quintelab 91 Denunciar post Postado Maio 30, 2011 Não consegui compreender. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites