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

    Visual Basic popolare Datagridview con ComboBox

    Un saluto a tutti, ritorno di nuovo all'attacco perché non ci arrivo proprio.

    In Visual Basic ho una Form con una DataGridView che prende i dati da una tabella su un db di access.
    Vorrei, con una combobox esterna alla datagrid ma sempre nella stessa form, filtrare il contenuto.
    Per intenderci.....se la datagrid mi fa visualizzare tutti i clienti.....vorrei che la combobox (popolata con le città) mi faccia vedere, nella datagrid, solo quelli di milano o torino o roma.

    Ho provato con una query sulla toolstrip ma niente, con un evento sulla combobox ma niente anche li

    Un consiglio su come procedere e cosa scrivere, sono a un punto morto!

    Grazie davvero

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio
    Un saluto a tutti, ritorno di nuovo all'attacco perché non ci arrivo proprio.

    In Visual Basic ho una Form con una DataGridView che prende i dati da una tabella su un db di access.
    Vorrei, con una combobox esterna alla datagrid ma sempre nella stessa form, filtrare il contenuto.
    Per intenderci.....se la datagrid mi fa visualizzare tutti i clienti.....vorrei che la combobox (popolata con le città) mi faccia vedere, nella datagrid, solo quelli di milano o torino o roma.

    Ho provato con una query sulla toolstrip ma niente, con un evento sulla combobox ma niente anche li

    Un consiglio su come procedere e cosa scrivere, sono a un punto morto!

    Grazie davvero
    Ciao
    L'evento che devi intercettare relativo alla combobox è SelectedIndexChange, che indica che hai modificato l'elemento selezionato
    Dopo di che devi applicare un filtro alla datatable.
    Guarda qua:
    http://msdn.microsoft.com/it-it/libr...v=vs.110).aspx
    Questo codice
    codice:
    Private Sub BindDataGrid()
       Dim table As New DataTable
    
       ' Insert code to populate a DataTable with data.
    
       ' Bind DataGrid to DataTable
       DataGrid1.DataSource = table
    End Sub 
    
    Private Sub ChangeRowFilter()
       Dim gridTable As DataTable = _
           CType(dataGrid1.DataSource, DataTable)
    
       ' Set the RowFilter to display a company names 
       ' that begin with A through I.
       gridTable.DefaultView.RowFilter = "CompanyName < 'I'"
    End Sub
    
    

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    Grazie mille per la risposta, ma non riesco ad adattare il codice che hai postato.

    dim table as new table datatable
    me.tabella_personale.fill(me.db_personaledataset.t abella_personale)
    datagridview1.datasource=table
    dim gridtable as datatable = _
    ctype (datagridview1.datasource, datatable)
    dim citta as object = cittadatagridviewtextboxcolumn
    gridtable.defaultview.rowfilter = "citta > '6'"


    ...ho come errore che non riesce a trovare la colonna citta!
    dove sbaglio!!??

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio
    Grazie mille per la risposta, ma non riesco ad adattare il codice che hai postato.

    dim table as new table datatable
    me.tabella_personale.fill(me.db_personaledataset.t abella_personale)
    datagridview1.datasource=table
    dim gridtable as datatable = _
    ctype (datagridview1.datasource, datatable)
    dim citta as object = cittadatagridviewtextboxcolumn
    gridtable.defaultview.rowfilter = "citta > '6'"


    ...ho come errore che non riesce a trovare la colonna citta!
    dove sbaglio!!??
    Ma l'errore specifico qual'è? Se si tratta della sintassi della proprietà rowfilter, non è ti posso aiutare granché perché non ho sottomano il tuo database e i dati che esso contiene. Ma nella colonna città (con o senza l'accento?) hai numeri o stringhe? Perché se metti gli apici gli stai dicendo di considerare il 6 come stringa...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    Niente d fare, non capisco l'errore!
    città lo scritto senza accento e ho tolto anche gli apici per ho numeri, ma non funziona ugualmente, e qualsiasi colonna io metta per la ricerca mi restituisce sempre lo stesso errore, cioè che non trova la colonna corrispondete in cui cercare!
    Secondo te ci può essere qualche altra soluzione? ho provato con la toolstrip, ma nente.
    purtroppo la colonna città è numerica e io ho bisogno che venga visualizzata con i nomi delle rispettive città e non i numeri.
    Quando lo avevo fatto in access era una banalità, qui un'impresa!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio
    Niente d fare, non capisco l'errore!
    città lo scritto senza accento e ho tolto anche gli apici per ho numeri, ma non funziona ugualmente, e qualsiasi colonna io metta per la ricerca mi restituisce sempre lo stesso errore, cioè che non trova la colonna corrispondete in cui cercare!
    Secondo te ci può essere qualche altra soluzione? ho provato con la toolstrip, ma nente.
    purtroppo la colonna città è numerica e io ho bisogno che venga visualizzata con i nomi delle rispettive città e non i numeri.
    Quando lo avevo fatto in access era una banalità, qui un'impresa!
    Aspetta un secondo, non facciamo casino..
    Tu devi filtrare i dati della datatable?

    Mettere i dati nella combobox invece, cioè i nomi delle città è un'altro paio di maniche..
    Comunque, tornando all'uso di
    codice:
    gridtable.defaultview.rowfilter 
    Leggi qua:
    La classe SqlDataAdapter include due metodi, Fill e FillSchema, che sono essenziali per il caricamento di questi dati. Entrambi i metodi caricano informazioni in un DataSet. Con Fill vengono caricati i dati, mentre con FillSchema vengono caricati tutti i metadati disponibili su una determinata tabella, ad esempio nomi di colonna, chiavi primarie e vincoli. Per gestire correttamente il caricamento dei dati, è consigliabile eseguire FillSchema seguito da Fill. Ad esempio:
    codice:
    daAuthors.FillSchema(dsPubs, SchemaType.Source, "Authors")
    daAuthors.Fill(dsPubs, "Authors")
    Fonte:
    http://support.microsoft.com/kb/301216/it

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    grazie davvero per l'interessamento, ora provo e ti faccio sapere!!
    Ma ragionando un attimo, dimmi cosa ne pensi...
    -io ho una tabella con l'elenco delle citta, ad ogni città corrisponde in ID;
    -popolo la mia tabella clienti con i rispettivi nomi (che hanno il loro ID diverso da quello delle città) delle persone e le città dove si trovano;
    - in una form metto una datagrid con la tabella dei clienti, quindi visualizzo tutto, nomi e città;
    - fuori dalla form metto una combobox con l'elenco delle città preso dalla rispettiva tabella città;
    è possibile che sia cosi difficile dire....se seleziono il valore della combobox (ID città) la datagrid dovrà restituirmi solo gli ID uguali corrispondenti alla colonna città??
    Miseria

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio
    grazie davvero per l'interessamento, ora provo e ti faccio sapere!!Ma ragionando un attimo, dimmi cosa ne pensi...-io ho una tabella con l'elenco delle citta, ad ogni città corrisponde in ID;-popolo la mia tabella clienti con i rispettivi nomi (che hanno il loro ID diverso da quello delle città) delle persone e le città dove si trovano;- in una form metto una datagrid con la tabella dei clienti, quindi visualizzo tutto, nomi e città;- fuori dalla form metto una combobox con l'elenco delle città preso dalla rispettiva tabella città;è possibile che sia cosi difficile dire....se seleziono il valore della combobox (ID città) la datagrid dovrà restituirmi solo gli ID uguali corrispondenti alla colonna città??Miseria
    No, detto così non è così difficile.Una precisazione: nella tabella clienti tu hai i clienti e IDCittà, cioè hai una relazione 1 a molti, per cui ogni cliente ha una città ma più clienti possono avere la stessa città.Detto ciò: tu nella query di estrazione dei dati della tabella clienti devi fare una JOIN, cioè nella tua datatable clienti vuoi che appaia il nome della città, non il suo ID..Posta qua quel codice.Poi, altro discorso: per caricare i nomi delle città nella combobox usi la proprietà Datasource, DisplayMember e ValueMember? (se non sai come usarli cerca su google). Alla selezione di un item della combobox, ti dovrebbe restituire l'ID della città (ValueMember). Tu devi impostare il filtro (proprietà RowFilter )sul IDCittà e passargli il numero dell'ID, non il nome della città. Detto ciò, sei sicuro che quando crei la datatable, estrai anche l'ID Città?
    Ultima modifica di renygade; 12-11-2014 a 23:05

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16
    allora, esattamente come hai detto;
    se utilizzo una toolstrip, quindi filtro utilizzando la query, io imposto nella colonna città della query la stringa "= ?" (senza virgolette), cosi facendo metto l'IDcittà (a mano) e mi restituisce esattamente quello che cerco filtrato.
    Il problema nasce proprio nel fatto che non voglio vedere l'IDcittà ma il nome della città;
    volevo utilizzare la combobox, appunto per vedere il nome e non l'ID, l'ho creata, visualizzo il nome e come "valore membro" ho impostato l'IDcittà, cosi la combobox e la datagrid parlano la stessa lingua, cioè con un numero e un numero e non numero a stringa.
    La difficoltà nasce nel fare la stessa cosa che fa la query ma con un valore preimpostato dalla combobox e non scritto da me come con la toolstrip.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio
    allora, esattamente come hai detto;
    se utilizzo una toolstrip, quindi filtro utilizzando la query, io imposto nella colonna città della query la stringa "= ?" (senza virgolette), cosi facendo metto l'IDcittà (a mano) e mi restituisce esattamente quello che cerco filtrato.
    Il problema nasce proprio nel fatto che non voglio vedere l'IDcittà ma il nome della città;
    volevo utilizzare la combobox, appunto per vedere il nome e non l'ID, l'ho creata, visualizzo il nome e come "valore membro" ho impostato l'IDcittà, cosi la combobox e la datagrid parlano la stessa lingua, cioè con un numero e un numero e non numero a stringa.
    La difficoltà nasce nel fare la stessa cosa che fa la query ma con un valore preimpostato dalla combobox e non scritto da me come con la toolstrip.
    Un passo alla volta, che sennò non ti seguo.
    La tabella la carichi correttamente? Hai sia l'ID città sia il nome della città? Se vuoi far sparire l'ID città devi dire alla datagridview di nasconderti la colonna. Mi pare che si possa, sennò imposti la sua larghezza a 0.
    E questa è una cosa.
    Per quanto riguarda il filtraggio, quando dici "filtro utilizzando la query", come fai? Con che codice? Che oggetti usi?
    Sei riuscito a caricare i dati nella combobox come ti ho detto? Quello è abbastanza facile
    http://vb.net-informations.com/datas...d-combobox.htm
    Quando selezioni l'item hai l'ID della città, un banalissimo integer.
    Da li riesci a fare il filtraggio sulla table con
    codice:
    gridtable.defaultview.rowfilter = "IDcitta  =6"
    Così dovrebbe andare. Altrimenti non saprei..
    Filtra i dati scrivendo una query SQL e ricarica una tabella già filtrata...

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.