• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

passado

[RESOLVIDO]Resgatar Valor de item selecciona em listbox

11 mensagens neste tópico

Boas pessoal estou a usar uma listbox para mostrar dados de uma tabela da base de dados acontece que eu ordeno esses dados por ordem alfabética, mas quando vou para eliminar o item seleccionado ele nao apaga o correcto, ou seja ou no botao eliminar eliminio pelo pelo ID, e o ID vou buscalo ao selectedvalue mas esse selectedvalue nao corresponde ao real, como resolvo isto?

Exemplo:

Base de dados:

1 - z

2 - a

3 - c

Na listbox:

2 - a (selectedvalue = 1)

3 - c (selectedvalue = 2)

1 - z (selectedvalue = 3)

Fizme entender?

Codigo para carregar listbox

 

 Private Sub carregalistbox()
        Dim da As BDDataSetTableAdapters.List_PaisTableAdapter = New BDDataSetTableAdapters.List_PaisTableAdapter
        ListBoxPaises.DataSource = da.GetData
        ListBoxPaises.DisplayMember = "pais"
        ListBoxPaises.ValueMember = "id_pais"
        ListBoxPaises.Refresh()
        ListBoxPaises.Sorted = True
        Dim da1 As BDDataSetTableAdapters.List_DistritoTableAdapter = New BDDataSetTableAdapters.List_DistritoTableAdapter
        ListBoxDistrito.DataSource = da1.GetData
        ListBoxDistrito.DisplayMember = "distrito"
        ListBoxDistrito.ValueMember = "id_distrito"
        ListBoxDistrito.Refresh()
        ListBoxPaises.Sorted = True
        Dim da2 As BDDataSetTableAdapters.List_LocalidadeTableAdapter = New BDDataSetTableAdapters.List_LocalidadeTableAdapter
        ListBoxLocal.DataSource = da2.GetData
        ListBoxLocal.DisplayMember = "localidade"
        ListBoxLocal.ValueMember = "id_localidade"
        ListBoxLocal.Refresh()
        ListBoxPaises.Sorted = True
    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deves estar a usar a propriedade SelectedIndex, e se experimentares a SelectedItem e fazes um String.Split para ires buscar o "id"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu estava a usar o selectedvalue como tenho sempre usado, mas experimentei o selectedindex e selecteditem e nao consegui com nenhum o split nao sei usar muito bem, podes dar uma dica?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas não precisas nada do Split. Tens de conseguir ir buscar o ID através do SelectedItem. Vê se consegues descobrir como é que fica o conteúdo da ListBox.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema é se eu nao mandar organizar corre tudo bem e todos os ids correspondem ao selectedvalue mas se eu mandar organizar os ids deixam de corresponder....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Explica lá melhor isso é o id da listview que está mal ou é a correspondência desse id da listview com a base de dados, ou seja:

1 - Seleccionas a checkbox da listview depois de organizado e não selecciona bem;

2 - Quando seleccionas a checkbox da listview e não corresponde ao registo da base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Explica lá melhor isso é o id da listview que está mal ou é a correspondência desse id da listview com a base de dados, ou seja:

1 - Seleccionas a checkbox da listview depois de organizado e não selecciona bem;

2 - Quando seleccionas a checkbox da listview e não corresponde ao registo da base de dados.

Não, é um ListBox que vai a uma tabela da BD, onde:

Displaymeber = "localidade"

Valuemember = "id_local"

o problema esta é em resgatar o "id_local" correspondente á "localidade" seleccionada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta linha

ListBoxPaises.DataSource = da.GetData

deveria estar no final, depois das outras todas, incluíndo o sort=true.

O Sort não é um método. É uma propriedade. O sorteio é feito depois e sempre que acontecer uma alteração na colecção.

Also, o refresh não está lá a fazer nada, à partida.

Ora tenta lá meter o DataSource= apenas no final, depois da atribuição dos membros e do booleano do sorteio.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Esta linha

ListBoxPaises.DataSource = da.GetData

deveria estar no final, depois das outras todas, incluíndo o sort=true.

O Sort não é um método. É uma propriedade. O sorteio é feito depois e sempre que acontecer uma alteração na colecção.

Also, o refresh não está lá a fazer nada, à partida.

Ora tenta lá meter o DataSource= apenas no final, depois da atribuição dos membros e do booleano do sorteio.

já fiz isso, ate fiz mais, eliminei o refresh e o sorted=true e activei nas propriedades no control, esta a funcionar, continou e com o problema do resgate

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

estou farto de dar voltas ng conhece uma solução?

Isto poe-me outra questao, mesmo sem organizar, se por exemplo a BD começar a carregar items cujo o primeiro o id seja 4, com selectedvalue ele vai buscar 1 ou 4?

0

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