Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    48

    Aggiunta di colonne a runtime su una datagridview

    Ciao a tutti

    sto iniziando ad utilizzare visual basic 2008 express per fare delle prove e vedere se passare poi a visual studio, vi spiego il mio problema che sicuramente per voi è banale ma per me è un ostacolo.

    Ho inserito una datagridview collegata a un db access in un form e tutto funziona, vedo i dati ed è tutto ok solo che le intestazioni delle colonne sono i nomi dei campi mentre io vorrei dare dei nomi più sensati.

    Ho fatto delle prove utilizzando il seguente codice opportunamente modificato:

    codice:
    Private Sub FrmRunTime_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            DataGridView1.AutoGenerateColumns = False
    
            Dim StrProvider As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\dati.accdb"
    
            Dim StrSql As String = "Select * from Anagrafica"
    
            'oggetto connection
    
            Dim Condati As New OleDbConnection(StrProvider)
    
            Try
    
                'apro la connessione
    
                Condati.Open()
    
                'oggetti per la gestione dei dati
    
                Dim dtsdati As New DataSet
    
                Dim DtaDati As New OleDbDataAdapter(StrSql, Condati)
    
                DtaDati.Fill(dtsdati, "Anagrafica")
    
                Dim StrSql2 As String = "select * from luogo"
    
                Dim dtsdati2 As New DataSet
    
                Dim DtaDati2 As New OleDbDataAdapter(StrSql2, Condati)
    
                DtaDati2.Fill(dtsdati2, "luogo")
    
                'Oggetto per la colonna nome
    
                Dim ColumNome As New DataGridViewTextBoxColumn
    
                ColumNome.DataPropertyName = "Nome"
    
                ColumNome.HeaderText = "Nome"
    
                ColumNome.Name = "Nome"
    
                'Oggetto per la colonna cognome
    
                Dim ColumnCognome As New DataGridViewTextBoxColumn
    
                ColumnCognome.DataPropertyName = "Cognome"
    
                ColumnCognome.HeaderText = "Cognome"
    
                ColumnCognome.Name = "Cognome"
    
                'Oggetto di tipo combobox per la gestione del paese
    
                Dim columnPaese As New DataGridViewComboBoxColumn()
    
                With columnPaese
    
                    .DataPropertyName = "Paese"
    
                    .HeaderText = "Paese"
    
                    .MaxDropDownItems = 5
    
                    .FlatStyle = FlatStyle.Flat
    
                    .DataSource = dtsdati2.Tables("luogo")
    
                    .ValueMember = "Paese"
    
                    .DisplayMember = "Paese"
    
                End With
    
                'tramite il metodo insert della proprietà columns aggiungo le colonne create in precedenza
    
                DataGridView1.Columns.Insert(0, ColumNome)
    
                DataGridView1.Columns.Insert(1, ColumnCognome)
    
                DataGridView1.Columns.Insert(2, columnPaese)
    
                'riempio la griglia
    
                DataGridView1.DataSource = dtsdati
    
                DataGridView1.DataMember = "Anagrafica"
    
            Catch ex As Exception
    
                MessageBox.Show(ex.Message)
    
     
    
            Finally
    
                Condati.Close()
    
            End Try
    
        End Sub
    il problema è che mi vengono aggiunte delle colonne con le intestazioni che voglio ma non modificano quelle originali, vengono aggiunte prima lasciando anche le altre.

    Dove sbaglio?

    Scusate se sono stato un pò lunghetto.
    Grazie

    Marco

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    A parte che l'oggetto del Thread è 'Aggiunta di colonne a runtime su una datagridview ' e poi chiedi come modificare a runtime l'intestazioni delle colonne...

    Prima di mettere le mani sulle proprietà della DataGridView per rinominare le colonne è possibile cambiarle già nella query di richiesta al DB in questo modo.

    Invece di scrivere:
    codice:
    "Select * from Anagrafica"
    Puoi scrivere ad esempio:
    codice:
    "Select nome AS 'Nome Utente', cognome AS 'Cognome Utente' from Anagrafica"
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    48
    Originariamente inviato da Pirelli72
    A parte che l'oggetto del Thread è 'Aggiunta di colonne a runtime su una datagridview ' e poi chiedi come modificare a runtime l'intestazioni delle colonne...
    Chiedo scusa, pensavo all'intestazione delle colonne e invece ho sbagliato il titolo del thread, chiedo perdono.

    Invece di scrivere:
    codice:
    "Select * from Anagrafica"
    Puoi scrivere ad esempio:
    codice:
    "Select nome AS 'Nome Utente', cognome AS 'Cognome Utente' from Anagrafica"
    Ho provato a fare come hai detto tu e in effetti funziona anche se devo ancora imparare e devo ancora capire molto di questa datagridview, tutto è molto diverso dal vb6 che utilizzavo un pò di tempo fa.

    Per esempio non capisco come si possa centrare le scritte delle intestazioni, cercherò in giro.

    Grazie ancora per la risposta.

    Ciao
    Marco

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Bigman
    Per esempio non capisco come si possa centrare le scritte delle intestazioni, cercherò in giro.
    Forse nella guida ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    48
    Originariamente inviato da gibra
    Forse nella guida ?
    Anche

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.