Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB.NET]: Problemi di connessione tra Combobox, Listbox e Datagridview

    Buongiorno ragazzi,
    vi chiedo una gentilezza, non riesco ben a capire dove sbaglio.
    Ho una combobox con i nomi dei fornitori, una listbox che mi fa vedere tutti i codici del fornitore scelto e poi un datagridview che indica (in dettaglio) l'articolo del codice selezionato in listbox.

    Qui di seguito i codici per tutti e tre i controlli.

    Combobox:
    codice:
    conn.Open()
            Dim strnet As New OleDbCommand("Select distinct Codice_Articolo_CO from DB_ARTICOLI", conn)
            Dim myreader As OleDbDataReader = strnet.ExecuteReader
            Cbo_utente.Items.Clear()
            Lst_artic.Items.Clear()
    While myreader.Read()
                Cbo_utente.Items.Add(myreader("Codice_Articolo_CO"))
                Cbo_utente.Text = ""
            End While
            conn.Close()
    ListBox:
    codice:
     conn.Open()
                 Dim strnet1 As New OleDbCommand("Select Articolo from DB_ARTICOLI where  Codice_Articolo_CO='" + Cbo_utente.Text + "'", conn)
                Dim myreader1 As OleDbDataReader = strnet1.ExecuteReader
                Lst_artic.Items.Clear()
                Dtg_disponibilita_pv.Rows.Clear()
                While myreader1.Read()
                    Lst_artic.Items.Add(myreader1("Articolo"))
                End While
                conn.Close()
    Datagridview:
    codice:
    cmd = New OleDbCommand("Select Distinct * From DB_ARTICOLI Where Articolo='" + Lst_artic.Text + "'", conn)
                cmd.Parameters.AddWithValue("Articolo", Lst_artic.GetItemText(Lst_artic.SelectedValue))
                da.SelectCommand = cmd
                Dim dt3 As New DataTable
                dt3.Clear()
                da.Fill(dt3)
                Dtg_info_disponibilita.DataSource = dt3
    
    
                Lbl_totale_articolo.Text = sum.ToString()
    Per quanto riguarda ComboBox e ListBox la connessione al DB č perfetto ma nel Datagridview mi fa vedere gli articoli anche di altri fornitori. Dove sbaglio?

    Img1.png

    Vi mando l'immagine per farvi capire meglio
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Mi sembra che l'errore sia ovvio
    Sulla riga
    codice:
    cmd = New OleDbCommand("Select Distinct * From DB_ARTICOLI Where Articolo='" + Lst_artic.Text + "'", conn)
    dov'č il filtro che vai a specificare di quale fornitore vuoi gli articoli ??

    Come lo hai scritto tu estrae tutti gli articoli

    Poi un altra considerazione:
    Nel momento in cui fai le query, che cosa accade se nella variabile Cbo_utente.Text oppure in Lst_artic.Text c'č una stringa che contiene un apice ??
    Ad esempio prova con
    codice:
    Cbo_utente.Text = "DALL'ALBA"
    e dimmi cosa succede

  3. #3
    Ciao SirJo
    ma scusa il filtro non č gią di per sč la listbox dove ci sono elencati i dati della colonna "Articolo"??
    Intendo dire che in base all'articolo scelto nella listbox e il fornitore scelto nella combobox mi sembra che di filtri ce ne siano gią abbastanza, ho provato piu' volte ma ahimč la mia conoscenza in vb.net č molto limitata e sicuramente, come dici tu, č ovvio ma non riesco a venirne fuori.
    Grazie

  4. #4
    sei sicuro che Lst_artic.Text contenga esattamente l'articolo che ti serve?

  5. #5
    e poi:
    codice:
    cmd = New OleDbCommand("Select Distinct * From DB_ARTICOLI Where Articolo='" + Lst_artic.Text + "'", conn)
    cmd.Parameters.AddWithValue("Articolo", Lst_artic.GetItemText(Lst_artic.SelectedValue))
    metti l'articolo in due posti...

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    Quote Originariamente inviata da SanMichele Visualizza il messaggio
    Ciao SirJo
    in base all'articolo scelto nella listbox e il fornitore scelto nella combobox mi sembra che di filtri ce ne siano gią abbastanza
    analizza questa riga:
    codice:
    cmd = New OleDbCommand("Select Distinct * From DB_ARTICOLI Where Articolo='" + Lst_artic.Text + "'", conn)
    Stai estraendo dalla tabella DB_ARTICOLI i record che nel campo "Articolo" c'č scritto quello che č selezionato su Lst_artic, per cui li estrae tutti, indifferentemente dal fornitore, non hai messo il filtro che ti deve estrarre solo quelli di un determinatore fornitore.

    E poi come ti ha detto giustamente optime devi togliere la riga
    codice:
    cmd.Parameters.AddWithValue("Articolo", Lst_artic.GetItemText(Lst_artic.SelectedValue)
    che non serve a nulla
    Ultima modifica di SirJo; 25-03-2025 a 13:01

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    residenza
    Vicenza
    Messaggi
    318
    ..... sei riuscito a risolvere ???

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.