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

    Vb.net 05 Aggiornamento TreeView dopo insert su DB

    Ciao a tutti...
    Da un form1 contenente una treeview che raggruppa dei dati presi dal database
    ho la possibilità di aprire un form2 che mi fa gli insert sul DB...

    Dopo l' insert effettuato tramite form2 vorrei che i dati della treeview su form1 si aggiornassero...
    ho provato da form2 ( dopo la procedura di insert ) a fare un form1.refresh e form1.show..
    ma niente.
    neanche se faccio form1.treeview.refresh...
    sapete dirmi se c'è un altro metodo?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Ma il controllo TreeView è associato ai dati? Oppure carichi i record manualmente?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    tutto a manina santa...

    il problema principalmente è questo...
    la funzione dataset che utilizzo per visualizzare i dati nella treeview...
    si trova in una classe...

    ovviamente per fare un aggiornamento se avessi la procedura che girasse sul form2
    potrei rifargli il Fill al dataset...

    altrimenti come potrei fare??

    ho anche provato a mettere public le var del datadapter e del dataset..
    ma quando su form2 due richiamo

    classe.datadapter.fill(classe.dataset, "Tabella")
    ovviamente mi chiede anche il command

  4. #4
    dimenticavo ( cosa importantissima ) come avrai capito utilizzo un dataset...
    per cui cose come refresh o eventi collegati al load...
    non servono a niente

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Se tutto è codificato a mano, significa che devi ricaricare i nodi nell'albero prelevando i dati dal DB dopo che hai inserito un nuovo record.

    Se non c'è alcuna associazione ai dati, come puoi pensare che la TreeView, inizializzata tramite codice nodo per nodo, venga a conoscenza che c'è un nuovo record da mostrare?

    In alternativa, che forse è la soluzione migliore, sarebbe bene codificare l'inserimento del nodo nella TreeView (così come avviene per la sua inizializzazione) a fronte dell'inserimento di un record, provvedendo così ad aggiungere il nodo che manca senza dover ricaricare interamente la struttura.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    ti posto il codice...
    CODICE PRESENTE NEL FORM1 DOVE SI CARICA LA TREEVIEW :
    Codice PHP:
    'All' evento form1_load
    'creo il nodo principale

    '
    nodo principale UTENTI
            Dim nodo2 
    As New TreeNode()
            
    nodo2.Text "Utenti"
            
    TreeView.Nodes.Add(nodo2)

            
    LoadTreeUser(nodo2)
            
    TreeView.Nodes(1).ImageIndex 2
            TreeView
    .Nodes(1).SelectedImageIndex 2


    'procedura che carica e compila i nodi secondari 
    Public Sub LoadTreeUser(ByVal nodopadre As TreeNode)

            '
    procedura in dataset su classe objuser
            Dim ResultSet 
    As DataSet objuser.User()

            If 
    ResultSet.Tables.Count 0 Then

                Dim row 
    As DataRow

                
    For Each row In ResultSet.Tables(0).Rows
                    
    ' Create the new node.

                    With nodopadre.Nodes.Add(row("Username").ToString)
                        .ImageIndex = 4
                        .SelectedImageIndex = 4
                    End With

                Next

            End If

    End Sub


    '
    sulla classe OBJUSER il dataset
    Public Function User() As DataSet

            Dim command 
    As New SqlClient.SqlCommand

            Dim Dataset 
    As New DataSet
            Datadapter 
    = New SqlClient.SqlDataAdapter

            command
    .Connection cnn
            command
    .CommandText "select * from Utente order by User_id"
            
    Datadapter.SelectCommand command
            Dataset
    .Clear()

            
    Datadapter.Fill(Dataset"Utente")

            Return 
    Dataset

        End 
    Function

    'FORM2 CREA UN NUOVO USER
    '
    SULL'EVENTO BTN_CREAUSER imposto le proprietà della classe in base alle txtbox di form2
    '
    e lancio la procedura di insert presente anch'essa nella classe objuser
    '
    sempre sull' evento di BTN dovrei aggiornare il FORM1 

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ferrate
    ti posto il codice...
    Cosa dovrei evincere da quel codice? L'ultimo messaggio che ho postato conteneva delle indicazioni... ne hai tenuto conto nella stesura del codice che hai postato? Lo hai riportato perché è corretto, oppure perché presenta problemi? Nel secondo caso, devi ovviamente indicare qual è il problema specifico che riscontri.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    mi allego perchè anch'io ho lo stesso problema...il fatto è che i nodi vengono caricati correttamente dal db, e se si controlla il debug vengono anche scritti sul treeview...solo che il treeview a video non mostra nulla...può essere problema di trehad? se si...come lo posso risovere? ho provato a gestire con Invoke...ma non ho capito molto bene e non sono molto pratico...
    seminate linux che windows si pianta da se

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    NON devi riesumare vecchie discussioni anche se hai lo stesso problema ... apri un altro thread specificando il problema e, se proprio devi, inserisci i link alla vecchia discussione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.