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

    [vb.net] Modificare valori visualizzati in datagridview

    Salve, ho un problema da risolvere, praticamente ho un gridview popolato da codice in cui visualizzo alcuni valori presi da db access. Il mio problema è quello di poter modificare un certo valore direttamente da gridvew potendo scrivere nella cella di interesse e modificarlo. Non ho mai fatto una cosa del genere come posso procedere? Come rendo le celle del gridview scrivibili e modificare i valori nel db?? il codice che uso è questo

    Try
    Dim data As Date
    Dim data2 As Date

    data = data1squadraTextBox.Text
    data2 = data2squadraTextBox.Text

    Dim command As New OleDbCommand
    command.Connection() = connection
    command.CommandText() = "SELECT * FROM Lavoro WHERE Data between #" & Format(data, "yyyy-MM-dd") & "# and #" & Format(data2, "yyyy-MM-dd") & "# "

    Dim da As New OleDbDataAdapter(command)
    Dim ds As New DataSet()
    da.Fill(ds)
    Dim dt As New DataTable
    dt = ds.Tables(0)
    visualizzasquadraDataGridView.DataSource() = dt
    visualizzasquadraDataGridView.Visible() = True
    visualizzasquadraDataGridView.Columns.Remove("ID")
    Catch
    MsgBox("Inserisci un valore corretto nell'apposito campo")
    End Try


    Ho pensato di fare una update tramite un pulsante. Praticamente scrivo nel campo del datagrid e poi taramite un pulsante aggiorna vorrei aggiornare quel campo. Però non so come procedere per fare la update del campo su cui ho scritto. O se hai un idea + semplice se puoi spiegarmi. Grazie 1000
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  2. #2
    Nessuno??
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  3. #3
    Utilizza una textbox per modificare e ti semplifichi la vita...
    Giorgio
    L'esperienza è il tipo di insegnante più difficile. Prima ti fa l'esame, e poi ti spiega la lezione. (Oscar Wilde)

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da ertulio
    Nessuno??
    Guarda qui, fa proprio quello che serve a te!

    VB2005 OLEDB Demo
    http://www.planet-source-code.com/vb...4586&lngWId=10

    Ciao

  5. #5
    Grazie degli aiuti,però se vorrei farlo senza il supporto delle text box?? Perchè hp molti campi, non posso riprodurre il datagrid e le textbox, la form sarebbe immensa, sarebbe + comodo utilizzare un pulsante aggiorna. Avete esempi
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Personalmente non uso mai questa tecnica, e sinceramente non l'ho mai vista applicata in nessun gestionale con cui ho avuto a che fare.
    Si usa solo in casi particolari, e viene attivata solo su richiesta specifica dell'utente (es. tramite un'apposito pulsante 'Attiva modifica').

    Di solito si crea un form ad hoc che serve sia per l'inserimento che per la modifica dei dati.
    In modifica, la griglia sia usa solamente per dar modo all'utente di selezionare un record, a quel punto l'utente preme Invio (o fa doppio clic sulla riga), leggo l'ID del record (in una colonna nascosta) e carico il record nel form per la modifica.

    Oltre a permettere a noi programmatori una validazione dell'input più semplice, mirata, intelligente ma sicuramente più efficace ed efficiente, l'utente può vedere nel form a colpo d'occhio molte più informazioni rispetto a quelle di una griglia (che lo costringerebbe invece a scorrere in orizzontale).
    Se le informazioni sono tante, allora si valuta se usare nel form un controllo a schede.

    La modifica in griglia è molto rischiosa.

    L'esempio che ti ho segnalato serviva come esempio sulla base della tua prima richiesta che avevi fatto:
    Il mio problema è quello di poter modificare un certo valore direttamente da gridvew
    quindi non si capiva che tu vuoi modificare TUTTI i valori, altrimenti te lo avrei detto subito.

    Ti consiglio di evitare la modifica diretta in griglia, ti preserva da un mucchio di problemi futuri che, se non hai molta esperienza, non saranno facili da affrontare e risolvere.
    Personalmente l'ho usata solo una volta con una griglia (TrueDBGrid!!!) che conteneva esclusivamente numeri.

    Ciao

    Ciao

  7. #7
    quindi mi consigli di inviare l'id ad una nuova form di modifica?
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da ertulio
    quindi mi consigli di inviare l'id ad una nuova form di modifica?
    Senza ombra di dubbio.
    E' sufficiente prevedere 2 routine:
    - una che carica i dati nei controlli
    - l'altra li aggiorna nelle tabelle del DB
    E, come mostra l'esempio che ti ho segnalato, ti consiglio di usare i parametri!!!

    Tieni presente che in un form puoi gestire la validazione dell'input dei dati in modo assai più efficente e pratico, sia per te che per l'utente stesso.
    Ad esempio, utilizzando controlli adeguati al tipo ed alla modalità di inserimento dei dati (Combobox, listbox, checkbox, ecc...) che semplificano il lavoro all'utente, e che ti permettono di attivare o meno certi campi a seconda del valore di certi altri.
    Un esempio pratico è l'emissione di un documento fiscale: la Fattura.
    Può essere Accompagnatoria, Differita, Riepilogativa, Immediata (scelgo tramite dei checkbox).
    Se attivo il checkbox Accompagnatoria, allora attivo la sezione Spedizione e chiedo all'utente di compilare i dati relativi (corriere, colli, aspetto, ecc. ecc.).
    Se invece è Differita, chiedo i dati del documento emesso in precedenza (bolla, preventivo confermato o ordine) da cui devo prelevare i dati.
    Se è Riepilogativa, l'utente deve indicare a quali documenti si riferisce (fattura proforma, bolla, preventivo, ecc.)

    Gestire cose di questo genere in una griglia è complicato, difficile e per niente pratico (per te e per l'utente).
    Un esempio, metti che l'utente cambia riga (anche per sbaglio) ed i dati sono incompleti, come ti comporti? Per cui sei costretto a gestire anche queste eventualità legate alla struttura del componente.

    Se vi sono molti dati da gestire in un form l'utente li avrà davanti tutti insieme 'a colpo d'occhio', mentre in una griglia dovrebbe continuamente scorrere orizzontalmente per verificare.

    Nel form poi metterai come minimo 2 pulsanti: Salva e Annulla;
    con Salva l'utente conferma le modifiche (o l'inserimento di un nuono record)
    Poi, a seconda dei casi, potrebbero essere necessari ulteriori pulsanti a seconda delle funzionalità richieste.

    Ciao

  9. #9
    Sto cercando di seguire il tuo consiglio, però mi son bloccato al passaggio dei valori alle textbox del form2
    Ho il form 1 con il datagrid, una volta selezionato la riga come faccio a passare l'id alla form2. Scusate ma è la prima volta che mi trovo in questa situazione. Grazie
    www.ertinformatica.com Vendita computer e hardware

    www.risorsefantacalcio.it News, voti del Corriere e della Gazzetta, e tanto altro.

    www.parrocchie.eu Parrocchie e siti cattolici italiani

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da ertulio
    Sto cercando di seguire il tuo consiglio, però mi son bloccato al passaggio dei valori alle textbox del form2
    Ho il form 1 con il datagrid, una volta selezionato la riga come faccio a passare l'id alla form2. Scusate ma è la prima volta che mi trovo in questa situazione. Grazie
    Nel Form2, aggiungi una routine Public che carica un record in base al suo ID, esempio

    codice:
    Public Function CaricaRecord (byval IdDaCaricare As Long)
    
        ' Codice per caricare il record con una select
        ' SELECT <elenco_campi> FROM <tabella> WHERE ID = IdDaCaricare
    
        ' assegnazione dei valori ai controlli del form
        ' txtCognome.Text = <valore>
        ' ecc. ecc.
    
    End Function
    Poi quando devi aprire il record nel Form2:

    codice:
        Private Sub btnApriForm2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnApriForm2.Click
            Form2.CaricaRecord(25)
            Form2.ShowDialog()
        End Sub
    Ovviamente, al posto di 25 , tu dovrai passare il valore della colonna ID relativa alla riga selezionata nel tuo DataGridView.

    Ciao

    P.S.
    Ho scritto al volo, quindi occhio ai possibili errori!!

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.