Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [vb.net] popolare una list view

    Salve a tutti, ho il seguente problema.
    Vorrei popolare un List View alla apertura della scheda con i dati provenienti da un db.
    Il codice è il seguente:

    codice:
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Dim stringaconn As String
            Dim conn As SqlConnection
            stringaconn = "Data Source=localhost; Initial Catalog=Rubrica; Integrated Security=SSPI;"
            conn = New SqlConnection(stringaconn)
            conn.Open()
    
    
            'Devi crearti un dataTable al quale associ la tabella del dataset.
    
            Dim tabella As DataSet = New DataSet
            Dim DTable As DataTable = tabella.Tables.Add("Persona")
    
            'Poi con un ciclo estrai i valori della tabella e li aggiungi al listview
    
            Dim x As DataRow
            For Each x In DTable.Rows
    
                lsvVisualizza.Items.Add(x("Nome").ToString())
                lsvVisualizza.Items.Add(x("Cognome").ToString())
                lsvVisualizza.Items.Add(x("Telefono").ToString())
    
            Next
    
        End Sub
    Il fatto che non funziona, va in esecuzione, ma all'apertura della scheda non si popola il List View.
    Come posso sistemarlo?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti sei chiesto quale collegamento ci sia tra la tua SqlConnection e la Datatable ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    grazie per avere risposto, potresti essere più chiaro?

  4. #4
    scusate ma non ne vengo a capo. Ho modificato il codice nel seguente modo:

    codice:
    Private Sub btnVisualizza2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVisualizza2.Click
            Dim stringaconn As String
            Dim conn As SqlConnection
            Dim read
            Dim Li
    
            stringaconn = "Data Source=localhost; Initial Catalog=Rubrica; Integrated Security=SSPI;"
            conn = New SqlConnection(stringaconn)
            conn.Open()
    
            Dim Command = New SqlCommand("SELECT * From Persona", conn)
            read = Command.ExecuteReader
    
            While read.Read()
                Li = lsvVisualizza2.Items.Add(read("Id"))
                Li = lsvVisualizza2.Items.Add(read("Nome"))
                Li = lsvVisualizza2.Items.Add(read("Cognome"))
                Li = lsvVisualizza2.Items.Add(read("Telefono"))
           
            End While
            conn.Close()
        End Sub
    mi stampa i campi dei record uno di seguito l'altro sulle RIGHE della listview.
    cosi
    codice:
    1      Pippo      Pluto           053453 2      Ciccio      Pino           05346 3      Paperino    pino          3252
    Io li vorrei sulle COLONNE.
    es:
    codice:
    Id    Nome    Cognome     Telefono
    1      Pippo      Pluto           053453
    2      Ciccio      Pino           05346
    3      Paperino    pino          3252
    Come posso farlo per sistemarlo?
    Grazie.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Una listview è organizzata in Items e SubItems

    Dopo che hai fatto l'add di un Item, devi usare questo item per fare l'add dei vari SubItems

    Trovi tutto nella documentazione della ListView
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    ho cambiato la seguente:

    codice:
            While read.Read()
                Li = lsvVisualizza2.Items.Add(read("Id"))
                Li.SubItems.Add(read("Nome"))
                Li.SubItems.Add(read("Cognome"))
                Li.SubItems.Add(read("Telefono"))
                
            End While
    ma mi restituisce solo Id
    codice:
    0 1 2 3 4 5...]
    un aiuto

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma tu hai creato le varie colonne nel ListView ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma la proprietà View è settata a Details ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Allora, effettivamente non era settata View a Details.
    Ora l'ho impostata.
    Solo che mi visualizza i campi del record uno sopra l'altro, e non disposti per colonne come una vista tabellare. Ovvero in questo modo:
    codice:
    Id      Nome  Cognome Telefono
    
    1
    Pippo
    Pluto
    053453
    
    2
    Pippo
    Baudo
    05453
    
    3
    Gino
    Pino
    04534
    come posso sistemare il seguente codice per avere una vista tabellare all'interno della listview?

    codice:
    Private Sub btnVisualizza2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVisualizza2.Click
            Dim stringaconn As String
            Dim conn As SqlConnection
            Dim read
            Dim Li
    
            stringaconn = "Data Source=localhost; Initial Catalog=Rubrica; Integrated Security=SSPI;"
            conn = New SqlConnection(stringaconn)
            conn.Open()
    
            Dim Command = New SqlCommand("SELECT * From Persona", conn)
            read = Command.ExecuteReader
    While read.Read()
                Li = lsvVisualizza2.Items.Add(read("Id"))
                Li.SubItems.Add(read("Nome"))
                Li.SubItems.Add(read("Cognome"))
                Li.SubItems.Add(read("Telefono"))
                
            End While
            conn.Close()
        End Sub
    Grazie!

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.