Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Hybrid View

  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
    si, la datagrid è ok.....vedo l'id città ma sono riuscito a visualizzare il nome e a nascondere appunto l'idcittà;
    per quanto riguarda la query....vado sulla datagrid e le dico "aggiungi query", poi nel generatore di query, imposto nella colonna città il filtro "= ?", così facendo mi genera nella form una toolstrip.........nella toolstrip metto ad esempio il numero 6 e mi filtra la datagrid con le città che hanno come id il numero 6, ma devo scriverlo a mano e devo indicare l'id e non il nome della città.
    La combobox è a posto......vedo nell'elenco a discesa, la lista di tutte le città scritte in lettere ma, come valore membro ho impostato l'idcitta.
    adesso per quanto riguarda la stringa gridtable.defaultview.rowfilter = "IDcitta =6", non riesco ad adattarla perché mi dice che defaultview non è membro del mio dataset (cosa voglia dire non lo so) e poi.....se io scrivo "IDcitta =6", lui mi restituisce la città numero 6 invece deve essere deciso dalla combobox, non posso scrivere IDcitta = "" perchè non lo accetta.
    nella peggiore delle ipotesi creo tanti button quante sono le città, perché non so più cosa fare.
    ti ringrazio ancora per l'aiuto

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio
    si, la datagrid è ok.....vedo l'id città ma sono riuscito a visualizzare il nome e a nascondere appunto l'idcittà;
    per quanto riguarda la query....vado sulla datagrid e le dico "aggiungi query", poi nel generatore di query, imposto nella colonna città il filtro "= ?", così facendo mi genera nella form una toolstrip.........nella toolstrip metto ad esempio il numero 6 e mi filtra la datagrid con le città che hanno come id il numero 6, ma devo scriverlo a mano e devo indicare l'id e non il nome della città.
    La combobox è a posto......vedo nell'elenco a discesa, la lista di tutte le città scritte in lettere ma, come valore membro ho impostato l'idcitta.
    adesso per quanto riguarda la stringa gridtable.defaultview.rowfilter = "IDcitta =6", non riesco ad adattarla perché mi dice che defaultview non è membro del mio dataset (cosa voglia dire non lo so) e poi.....se io scrivo "IDcitta =6", lui mi restituisce la città numero 6 invece deve essere deciso dalla combobox, non posso scrivere IDcitta = "" perchè non lo accetta.
    nella peggiore delle ipotesi creo tanti button quante sono le città, perché non so più cosa fare.
    ti ringrazio ancora per l'aiuto
    Alla fine mi sono stufato di provare a immaginare cosa fai e ho fatto io direttamente una prova.
    A me funziona tutto. Ti incollo il codice:
    codice:
     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    
    
            Dim table As New DataTable
            Dim combo As New DataTable
            Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Renny\Google Drive\GOLDEN\Appuntamenti\Appuntamenti.accdb; Persist Security Info=False;")
                Using Command As New OleDbCommand("SELECT GLOBALE.ID, GLOBALE.visita, GLOBALE.Cognome, GLOBALE.Nome, GLOBALE.Nascita, GLOBALE.Telefono, Comuni.Comune, Comuni.IDComune FROM (GLOBALE INNER JOIN Comuni ON GLOBALE.Comune = Comuni.IDComune)", conn)
    
    
                    Dim tableadapter As New OleDb.OleDbDataAdapter(Command)
                    Try
                        tableadapter.Fill(table)
                    Catch ex As Exception
                        Debug.Print(ex.ToString)
                    End Try
    
    
                End Using
    
    
                Using Command As New OleDbCommand("SELECT * FROM Comuni", conn)
                    Dim tableadapter As New OleDb.OleDbDataAdapter(Command)
                    Try
                        tableadapter.Fill(combo)
                    Catch ex As Exception
                        Debug.Print(ex.ToString)
                    End Try
                End Using
    
    
    
    
            End Using
    
    
            Me.DataGridView1.DataSource = table
            DataGridView1.Columns("IDComune").Visible = False
            Me.ComboBox1.DisplayMember = "Comune"
            Me.ComboBox1.ValueMember = "IDComune"
            Me.ComboBox1.DataSource = combo
    
    
        End Sub
    
     Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim table As DataTable = Me.DataGridView1.DataSource
            table.DefaultView.RowFilter = "IDComune =" & CStr(ComboBox1.SelectedValue)
        End Sub

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    16

    me.T_clientiTableAdapter.query(Me.Db_SiGeMDataSet.t_clienti, New System.Nullable(OfInteger)(CType(ComboBox1.SelectedValue, String)))


    Funziona....ho risolto con la stringa di sopra messa nella combobox_selectedindexchanged.
    Ho generato la query dalla datagrid e poi modificato i riferimenti alla combobox.
    Ti ringrazio davvero tanto....il miracolo è avvenuto

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da rosco82 Visualizza il messaggio

    me.T_clientiTableAdapter.query(Me.Db_SiGeMDataSet.t_clienti, New System.Nullable(OfInteger)(CType(ComboBox1.SelectedValue, String)))


    Funziona....ho risolto con la stringa di sopra messa nella combobox_selectedindexchanged.
    Ho generato la query dalla datagrid e poi modificato i riferimenti alla combobox.
    Ti ringrazio davvero tanto....il miracolo è avvenuto
    Bene, mi fa piacere.. Ma per curiosità.. puoi postare il codice completo? Cos'è "T_clientiTableAdapter"?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.