Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

.Tigas.

Receber dados e imagem da BD e inserir em labels e pictureboxI

Mensagens Recomendadas

.Tigas.    0
.Tigas.

Boa tarde, como já devem saber (ou não) estou a fazer a PAP e deparo-me com vários problemas. Penso que este seja o último porque é o único que falta para terminar a PAP (tenho 14 dias para a entregar por isso agradecia uma resposta breve porque ainda me falta o relatório ahahah).

O título mostra o que preciso de fazer. Tenho vários registos de vários produtos numa tabela (10 por exemplo). Como é que eu mostro todos os registos automaticamente em labels e pictureboxes divididos por páginas (por exemplo, 5 registos por cada página)?

Não quero que me façam a PAPinha toda porque eu tenho a lógica mas não consigo executa-la (mostra-me o 1º registo e os outros ignora).

Tendo 5 registos por página tenho 5 picture boxes e 5 labels (são mais que 5 mas isso são informações adicionais, não interessa porque se eu consigo uma consigo o resto).

Basicamente ia receber os 5 registos e quando passa-se o 5º iria incrementar +1 para nas variáveis para passar para o 6º, 7º, etc e na 2ª página (mas o mesmo form) os restantes registos. Isto de forma a evitar a criar 10000000 controlos. Basicamente, tenho os 5 controlos que me vão mostrar os registos todos da BD em cada página.

Até agora tenho o seguinte.

'Declaração de variáveis

a = 1

b = 10

a1 = 1

a2 = 2

a3 = 3

a4 = 4

a5 = 5

For i = a to b

Dim varsql = "Select nome, imagem from tabela produtos where codartigo = 1"

dim cmd as new sqlcommand(varsql, db)

dim dr as sqldatareader

dr = cmd.executereader

while dr.read()

If i = a1 then

label1.text = dr.item(0)

picturebox = dr.item(1)

End If

If i = a2 then

label2.text = dr.item(0)

picturebox2 = dr.item(2)

fazendo os ifs até ao 5º basicamente (eu sei que não é assim que se mete a picturebox a receber uma imagem mas não interessa)

End If

End While

Next

Não sei se dá para perceber mas a ideia é fazer os controlos receberem os dados da bd ao comparar o valor actual do meu ciclo com os valores das variáveis à medida que o meu read vai passando de registo (+1).

Quanto ao mudar de página eu tenho uma ideia de carregar numa label (página 2) e depois incrementar +5 em todas as variáveis mas por agora queria resolver este problema.

Este código mostra apenas o 1º registo nos controles. Quando vai fazer o for quando o i é 2 simplesmente chega ao dr = cmd.executereader simplesmente ignora o resto e abre o form com o 1º registo.

Preciso de ajuda mesmo.

Obrigado desde já.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.