View Full Version : [VB] Multiselect su ListView
Come posso inserire nel Database 10 righe selezionate contemporaneamente su una ListView con attivato il "MultiSelect=True" ???
cioe':
Seleziono 10 righe e con un solo Invio metto i 10 valori selezionati nel Database.
Cioe' inserisci 10 nuovi record ognuno contenente uno dei valori selezionati :confused: ?
Aloha
SI, una riga della ListView in una riga del Database... e cosi via...
ma il tutto in una sola selezione di 10 Item...... non voglio farlo 10 volte.
for i = 1 to numero_elementi_selezionati
aggiungi recordset al db
popoli il campo con i dati della i-esima selezione
next i
Per aggiungere un nuovo record guarda la documentazione sul metodo "add" di recordset.
Aloha
Dipende dal database...
Ad esempio in MySQL :
INSERT INTO tabella VALUES (valore11,....valore1n),(valore21,....valore2n),....(valore91,....valore9n),(valore101,....valore10n)
Hai ragione...il fatto e' che ormai sono assuefatto con l'associazione vb->access -> usare adodc -> bla bla bla . Aiuto, esci dalla mia testaaaaaaaaaaaaaaa :muro:
:D
Aloha
Originally posted by "bsummer"
Aiuto, esci dalla mia testaaaaaaaaaaaaaaa :muro:
:rolleyes: eheh :D
Originally posted by "bsummer"
for i = 1 to numero_elementi_selezionati
aggiungi recordset al db
popoli il campo con i dati della i-esima selezione
next i
Per aggiungere un nuovo record guarda la documentazione sul metodo "add" di recordset.
Aloha
OK, molto chiaro, solo che non so come accedere alla proprieta della ListView, cosa c'e' un metodo CountRows ???
come faccio a iniziare l'estrazione del campo ID dalla riga 25 alla riga 35 ???
la mia ListView la popolo cosi:
Public Sub PopolaClienti()
Try
lwClienti.Items.Clear()
Dim li As ListViewItem
oConn.Open()
Dim comm As New SqlCommand("SELECT * FROM Clienti", oConn)
Dim read As SqlDataReader = comm.ExecuteReader
While read.Read()
li = lwClienti.Items.Add(read("ID"))
li.SubItems.Add(read("Codice_Fiscale"))
li.SubItems.Add(read("Ragione_Sociale"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
li.SubItems.Add(read("###"))
End While
oConn.Close()
Catch
oConn.Close()
MessageBox.Show("Si è verificato un errore su: PopoloClienti.", "Errore!", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Exit Sub
End Try
End Sub
lwClienti.SelectedItems ti dovrebbere rendere la lista delle item selezionate...
Cosi funziona !!!
ma mi ripete solamente il primo rigo selezionato per tante volte quanti sono i righi selezionati.....
Dim i As Integer
For i = 1 To lwClienti.SelectedItems.Count
If lwClienti.SelectedItems.Count > 0 Then
MsgBox(lwClienti.SelectedItems.Item(0).Text)
End If
Next
Devi mettere i al posto di 0 ;)
PS: sul MSDN c'è, io l'ho trovato lì :)
FUNZIONA!!!
Dim i As Integer
For i = 1 To lwClienti.SelectedItems.Count
If lwClienti.SelectedItems.Count > 0 Then
MsgBox(lwClienti.SelectedItems.Item(i - 1).Text)
End If
Next
con questa modifica: MsgBox(lwClienti.SelectedItems.Item(i - 1).Text)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.