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

    TREEVIEW e AGGIUNTA NODI DA DATAREADER IN BASE ALLA DATA

    Ciao a tutti
    devo popolare un treeview prendendo i dati da un db access organizzati per data ovvero :

    DATA1 - CLIENTE1
    DATA1 - CLIENTE2
    DATA2 - CLIENTE3
    DATA2 - CLIENTE4

    ecc...

    ho provato a scrivere questo codice :

    codice:
    Imports System.Data
    Imports System.Data.OleDb
    Imports System.Windows.Forms
    
    
    Public Class frmASSEGNAZIONI
        Dim CONN As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=assegnazioni.accdb"
        Dim SQL As String
        Dim s() As String
    
        Private Sub frmASSEGNAZIONI_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim cn As New OleDbConnection(CONN)
            Dim i, As Integer
            Dim controllodata As Date
    
            tvASSEGNAZIONI.Nodes.Clear()
    
            'POPOLO tvASSEGNAZIONI
    
            cn.Open()
            SQL = "SELECT data, cliente FROM ASSEGNAZIONI ORDER BY DATA"
            Dim cmd As New OleDbCommand(SQL, cn)
            Dim objDataReader As OleDbDataReader = cmd.ExecuteReader
            Dim NdTmp As TreeNode
    
            While objDataReader.Read
                If i = 0 Then
                    tvASSEGNAZIONI.Nodes.Add(objDataReader("data"))
                    tvASSEGNAZIONI.Nodes(i).Nodes.Add(objDataReader("cliente"))
                    i = i + 1
                Else
                    If objDataReader("data") = tvASSEGNAZIONI.Nodes(i - 1).Text Then
                        tvASSEGNAZIONI.Nodes(i).Nodes.Add(objDataReader("cliente"))
                        i = i
                    Else
                        tvASSEGNAZIONI.Nodes.Add(objDataReader("data"))
                        tvASSEGNAZIONI.Nodes(i).Nodes.Add(objDataReader("cliente"))
                        i = i + 1
                    End If
    
                End If
    
    
            objDataReader.Close()
            cn.Close()
          end while
        End Sub

    IL PROGRAMMA PARTE fino a questo punto

    DATA1-CLIENTE1
    DATA2-CLIENTE2
    DATA3-CLIENTE3

    il prossimo data da aggingere sarebbe un nodo figlio CLIENTE4 facente parte di DATA3 ma non funziona.

    Mi potete aiutare?

    GRAZIE

  2. #2
    Benvenuto nel forum! Quando inserisci del codice in una discussione ti consiglio di usare i tag [ code ] e [ /code ] (senza spazi), renderanno il tuo codice più leggibile e sarà più facile aiutarti.
    Chi non cerca trova.

  3. #3
    Per rispondere alla tua domanda: hai provato a eseguire passo-passo il codice per capire se l'algoritmo funziona correttamente? Io ho qualche dubbio su questa riga:
    codice:
    If objDataReader("data") = tvASSEGNAZIONI.Nodes(i - 1).Text Then
    Chi non cerca trova.

  4. #4
    RISOLTO
    codice:
     While objDataReader.Read
                If i = 0 Then
                    tvASSEGNAZIONI.Nodes.Add(objDataReader("data"))
                    tvASSEGNAZIONI.Nodes(i).Nodes.Add(objDataReader("cliente"))
                    i = i + 1
                Else
                    If objDataReader("data") = tvASSEGNAZIONI.Nodes(i - 1).Text Then
                        tvASSEGNAZIONI.Nodes(i - 1).Nodes.Add(objDataReader("cliente"))
                    Else
                        tvASSEGNAZIONI.Nodes.Add(objDataReader("data"))
                        tvASSEGNAZIONI.Nodes(i).Nodes.Add(objDataReader("cliente"))
                        i = i + 1
                    End If
    
                End If
            End While

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.