Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794

    [VB 2005] riempire una listbox

    Ragazzi, ho fatto un'applicazione in Visual Basic. Ho creato una lista box in cui carico, tramite un'origine dati, dei valori di una tabella di access. Me li carica: come testo metto la ragione sociale e come valuemember metto l'id. Poi ho creato una list box a fianco che voglio riempire dinamicamente e cioè:
    seleziono un valore dalla precedente e con una select, vado a recuperare i valori collegati in un'altra tabella in base all'id. Me li recupera, tutto ok, ma non riesco a riempire la seconda listbox aggiungenfo come testo il titolo e il valore l'id.
    Come caspita posso fare?
    Vi posto il codice

    Private Sub FrmCaricoFornitori_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FrmCaricoFornitori.SelectedIndexChanged
    Dim num As Integer
    num = FrmCaricoFornitori.SelectedValue
    Dim stringasql As String
    stringasql = "SELECT * From AnagraficaSchede Where fornitore= " & num
    Dim con As New OleDbConnection(connessione)
    Dim cmd As New OleDbCommand(stringasql, con)
    Dim reader As OleDbDataReader
    Try
    con.Open()
    reader = cmd.ExecuteReader
    Do While reader.Read() //Qui ho il problema di riempire la listbox FrmCaricoProdotti

    FrmCaricoProdotti.Text = reader("marca")
    FrmCaricoProdotti.ValueMember = reader("id")

    Loop

    Catch ex As Exception
    lbl.Text = ex.Message
    Finally
    If (Not con Is Nothing) Then
    con.Close()
    End If
    End Try

    End Sub

  2. #2
    codice:
    if reader.hasrows =true then
    Do While reader.Read() //Qui ho il problema di riempire la listbox FrmCaricoProdotti
    FrmCaricoProdotti.items.add(reader("marca"))
    FrmCaricoProdotti.ValueMember = reader("id")
    Loop
    else
    frmcaricoprodotti.items.add("Nessun Prodotto trovato")
    end if
    guarda se funziona... non ho provato
    ciao
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Ho provato a fare questo ma non va.

  4. #4
    che errore ti dà?
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Ho riprovato, i dati me li visualizza. Ma quando faccio l'evento changeditem, vorrei recuperare l'id che c'è dietro ma non me lo fa recuperare. Uso il metodo FrmCaricoprodotto.selectedvalue ma mi dà come risultato NOTHING

  6. #6
    invece di fare così, non fai prima a usare il source? se guardui il valuemember nella guida di msdn viene spiegato come attaccare un'origine dati a una listbox... precisamente qui:

    Proprietà ListControl.ValueMember

    studiati l'esempio in vb.net
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Allora io attacco i dati ad una listbox in base ad un valore ID recuperato da un'altra listbox. L'altra l'ho attaccata nel modo che dici tu. La seconda la voglio riempire in modo dinamico. Tutto qui.

  8. #8
    e fare la stessa cosa alla seconda non va? una roba tipo:

    codice:
    Private Sub FrmCaricoFornitori_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FrmCaricoFornitori.SelectedIndexChanged
    Dim num As Integer
    num = FrmCaricoFornitori.SelectedValue
    Dim stringasql As String
    stringasql = "SELECT * From AnagraficaSchede Where fornitore= " & num
    Dim con As New OleDbConnection(connessione)
    con.Open()
    Dim cmd As New OleDbCommand(stringasql, con)
    Dim reader As OleDbDataReader
    Try
    
    FrmCaricoProdotti.datasource = reader
    FrmCaricoProdotti.displayMember = "marca"
    FrmCaricoProdotti.ValueMember = "id"
    
    Catch ex As Exception
    lbl.Text = ex.Message
    Finally
    If (Not con Is Nothing) Then
    con.Close()
    End If
    End Try
    
    End Sub
    comunque ricordati che prima si apre la connessione, poi si esegue il comando... non l'inverso...
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Lo so come si fa una connessione :-)
    Infatti nella mia funzione ho aperto prima la con e poi ho esequito la cmd.
    Ma il problema è sempre quello. Che non riesco a inserire l'id corrispondente ai dati recuperati nella listbox. Per il resto tutto ok.

    Comunque. Posso disturbarti su una cosa che forse è banalissima ma io mi sto scervellando da due giorni? Non la riesco a risolvere in nessun modo...

  10. #10
    certo, dimmi tutto
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.