moet (Normal User)
Pro
Messaggi: 185
Iscritto: 13/11/2007
|
Data listview riempita da database vorrei dopo aver selezionato riga con il mouse (id,nome, cognome) la cancellazione sia da database che da listview anche con un commanbutton va bene. Grazie
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
Ciao, io non ho mai lavorato con le listview, sto imparando adesso.
Per aggiungere elementi si fa:
Codice sorgente - presumibilmente VB.NET |
Dim c As ListItem Private Sub Form_Load() Dim i As Integer ListView1.View = lvwReport ListView1.ColumnHeaders.Add , "col1", "ID", 100 ListView1.ColumnHeaders.Add , "col2", "Nome" ListView1.ColumnHeaders.Add , "col3", "Cognome" For i = 1 To 5 Set c = ListView1.ListItems.Add(, , CStr(i)) c.SubItems(1) = "mionome" c.SubItems(2) = "miocognome" Next i End Sub
|
elimina l'elemento 4.
Codice sorgente - presumibilmente VB.NET |
Private Sub Command1_Click() Dim i ListView1.ListItems.Remove (4) End Sub
|
Il problema è riuscire a trovare l'indice dell'elemento selezionato.
Ciao. Ultima modifica effettuata da LuigiBiasi il 27/11/2007 alle 10:28 |
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
trovato...
questo è il codice completo:
Codice sorgente - presumibilmente Visual Basic 6 |
Codice sorgente - presumibilmente VB.NET |
Private Sub Command1_Click() For Each c In ListView1.ListItems If c.Selected Then ListView1.ListItems.Remove c.Index Exit For End If Next End Sub
|
Codice sorgente - presumibilmente VB.NET |
Dim i As Integer ListView1.View = lvwReport ListView1.ColumnHeaders.Add , "col1", "ID", 100 ListView1.ColumnHeaders.Add , "col2", "Nome" ListView1.ColumnHeaders.Add , "col3", "Cognome" For i = 1 To 5 Set c = ListView1.ListItems.Add(, , CStr(i)) c.SubItems(1) = "mionome" c.SubItems(2) = "miocognome" Next i
|
Questo codice è un esempio di utilizzo della listview.
Ciao.
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
comunque visto che la cosa non è particolarmente difficile ho completato il codice:
Codice sorgente - presumibilmente VB.NET |
Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim c As ListItem Dim n As Integer Private Sub Command1_Click() Dim ind As Integer For Each c In ListView1.ListItems If c.Selected Then ind = c.Index ListView1.ListItems.Remove c.Index Exit For End If Next cn.Execute "Delete from [b]nometabella[/b] where id = " & CStr(ind) End Sub Private Sub Form_Load() Dim i As Integer ListView1.View = lvwReport ListView1.ColumnHeaders.Add , "col1", "ID", 100 ListView1.ColumnHeaders.Add , "col2", "Nome" ListView1.ColumnHeaders.Add , "col3", "Cognome" n = 0 cn.Open "File Name=" & "pathfile.udl" rs.Open "sample2", cn, 3, 3 InsertInListView End Sub Public Function InsertInListView() While Not rs.EOF n = n + 1 'Set c = ListView1.ListItems.Add(, , CStr(n)) Set c = ListView1.ListItems.Add(, , rs("ID")) c.SubItems(1) = rs("Nome") c.SubItems(2) = rs("Cognome") rs.MoveNext Wend End Function Private Sub Form_Unload(Cancel As Integer) rs.Close cn.Close End Sub
|
L'ho testato e funziona perfettamente.
ATTENZIONE il campo id del database può essere settato come chiave primaria e bisogna precisare di incrementarsi da solo di 1, altrimenti lo devi eseguire nel codice, quando aggiungi i record..
MOLTO IMPORANTE: Quando viene eliminato un record nel database, i valori di ID vanno rimessi in ordine altrimenti il codice non funzionera, quindi ti consiglio di incrementare ID nel codice quando aggiungi una record.
Ciao.
Ultima modifica effettuata da LuigiBiasi il 27/11/2007 alle 11:14 |
|
moet (Normal User)
Pro
Messaggi: 185
Iscritto: 13/11/2007
|
Precisissimooooo GRAZIE !
|
|
moet (Normal User)
Pro
Messaggi: 185
Iscritto: 13/11/2007
|
Sai che ho scoperto ora che mi cancella il dato da listview ma non me lo cancella nello stesso momento da db ?!?!?
strano! non da neanche errori e la sintassi è perfetta.
|
|
moet (Normal User)
Pro
Messaggi: 185
Iscritto: 13/11/2007
|
OK FATTA !!!!!!
RS.OPEN stringa
rs.Open "Tabella1", cn, 3, 3
....cancella.....
|
|
LuigiBiasi (Normal User)
Expert
Messaggi: 237
Iscritto: 15/09/2006
|
scusa ma non ho capito il problema??!!
|
|
moet (Normal User)
Pro
Messaggi: 185
Iscritto: 13/11/2007
|
il programma mi cancella l' elemento selezionato in listview ma non mi cancella lo stesso utente nel database! in pratica non funziona questa stringa
cn.Execute "Delete from tabella1 where id = " & CStr(ind)
|
|