l_nando 0 Denunciar post Postado Dezembro 26, 2013 Boa noite pessoal! Estou començando a aprender um pouco de VB.NET e estou tentando exibir os registros de uma tabela, até aí tudo bem e consigo, mas minha tabela ( ACCESS ) tem 21 registros, e só são exibidos 20. Algué pode me dizer o que deve estar errado. Segue parte do cod: conn.Open() mycmd = New OleDbCommand("Select * from CliBD order by NOME", conn) mydr = mycmd.ExecuteReader mydr.Read() ListBox1.Items.Clear() Try 'exibe os dados : nome da empresa(1) , nome do contato(2) While (mydr.Read) ListBox1.Items.Add(mydr.Item(1) & " ( " & mydr.Item(2) & " )" & " ( " & mydr.Item(3) & " )") End While Finally mydr.Close() End Try conn.Close() Grato Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Dezembro 27, 2013 Ao invés de usar o while, use a propriedade DataSource da ListBox e seta o DataReader como source, o ValueMember será o Código e o DisplayMember será o que você quer exibir. Procure no Google, existem vários tutoriais sobre DataSources em objetos. Compartilhar este post Link para o post Compartilhar em outros sites
l_nando 0 Denunciar post Postado Dezembro 27, 2013 Boa tarde. Vou tentar fazer isso, mas na verdade queria saber porque o Select não está me retornando todos os registros. Att. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Dezembro 29, 2013 Pode ter uma série de fatores, se você imaginar que a sua sequencia de registros é um array de N posições começando do 0, os registros só irão até N-1 porque N é a posição destinada para que haja o próximo registro, ou seja, o array guarda uma posição vazia no final dele, fazendo com que você tenha que le-lo até o penúltimo registro apenas, isto pode estar acarretando o fato de que você está lendo um registro antes deste. Compartilhar este post Link para o post Compartilhar em outros sites
l_nando 0 Denunciar post Postado Dezembro 30, 2013 Boa noite. A solução foi a seguinte: No form1_Load: carregaListBox(ListBox1, "Select * from CliBD order by IDCLI") depois: Private Sub carregaListBox(ByVal ListBox1 As ListBox, ByVal query As String) ListBox1.Items.Clear() ' abre a conexão conn.Open() ' cria um command Select mycmd = New OleDbCommand(query, conn) ' Executa a consulta criando um datareader mydr = mycmd.ExecuteReader ' exibe o resultado no listbox 'percorre o datareader Try 'exibe os dados : nome da empresa(1) , nome do contato(2) While (mydr.Read) ListBox1.Items.Add(mydr.Item(1) & " ( " & mydr.Item(2) & " )" & " ( " & mydr.Item(3) & " )") End While Finally mydr.Close() End Try ' fecha a conexao conn.Close() End Sub Agradeço pela ajuda. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites