vb-2005 ajuda

Ruben_Barbosa

Power Member
Código:
For i = 0 To 5
                    If ListView1.Items.Count Then

                        strSQL = "INSERT INTO Parquelinhas VALUES(" & Combo2(4).Text & " , '" & ComboBox1.Text & "' , '" & ListView1.Items.Item(i).SubItems(0).Text & "' , " & ListView1.Items.Item(i).SubItems(1).Text & " , " & ListView1.Items.Item(i).SubItems(2).Text & " , " & ListView1.Items.Item(i).SubItems(3).Text & ")"
                        cmSQL = New SqlCommand(strSQL, cnSQL)
                        cmSQL.ExecuteNonQuery()
                        cmSQL.Dispose()

                    End If
                Next
Éste é o meu codigo.

O Que eu quero é o Seguinte :

vou dar um Exemplo

Listview com

Nome Morada Email

Segundo o meu codigo tenho que adicionar dados 5 vezes exemplo :

Nome Morada Email
Ruben lol adfdfsfsdf@£dfsf
Ruben1 lol1 adfdfsfsdf1@£dfsf
Ruben2 lol2 adfdfsfsdf2@£dfsf
Ruben3 lol3 adfdfsfsdf3@£dfsf
Ruben4 lol4 adfdfsfsdf4@£dfsf
Ruben5 lol5 adfdfsfsdf5@£dfsf

ja fiz tambem

dentro do ciclo
Código:
For i = 0 To 5
                   
If ListView1.Items.Count.tostring <> ""  Then

                        strSQL = "INSERT INTO Parquelinhas VALUES(" & Combo2(4).Text & " , '" & ComboBox1.Text & "' , '" & ListView1.Items.Item(i).SubItems(0).Text & "' , " & ListView1.Items.Item(i).SubItems(1).Text & " , " & ListView1.Items.Item(i).SubItems(2).Text & " , " & ListView1.Items.Item(i).SubItems(3).Text & ")"
                        cmSQL = New SqlCommand(strSQL, cnSQL)
                        cmSQL.ExecuteNonQuery()
                        cmSQL.Dispose()

                    End If
                Next
Mas nada :S

Ou seja o Que quero é Que na minha Listview seja indiferente ter que adicionar 5 ou 4 ou 3 , etc . Quero que ela grava se so for inserido dados 1 vez ele grava , se for 3 ele grava.

Explicito ?

Agradeço desde já toda ajuda ;)

cumps
 
Última edição:
Não entendi muito bem o que querias podias explicar melhor sff? Queres ele grave quando?

Se for adicionado uma linha so a listview com dados ele grava so essa , senao se for 3 ele grava as 3 mas tem um limte de 6.

Isto é tem um limite até 6 linhas para inserir na listview mas pode perfeitamente so ser inserido 1 lina ou ate mesmo 3. Exemplo.

NOME APELIDO RUA

RUBEN BARBOSA LOL

GRAVA

OU POR EXEMPLO FORAM INSERIDOS 3 LINHAS NA LISTVIEW

NOME APELIDO RUA

PEDRO RU LOL
RUTE MARQUES RF
RITA SOFIA DF

GRAVA

OU ENTAO

NOME APELIDO RUA

PEDRO RU LOL
RUTE MARQUES RF
RITA SOFIA DF
MARTA MARQUES FDG
ROGERIO ROQUE DFSD
RAQUEL LOPES FGDG

quero que ele me aceita a grava sendo ou 1 linha so ou 3 , ou 2 .

explicito?
 
Código:
If ListView1.Items.Count = 1 Then

For i = 0 To 1
                        strSQL = "INSERT INTO Parquelinhas VALUES(" & Combo2(4).Text & " , '" & ComboBox1.Text & "' , '" & ListView1.Items.Item(i).SubItems(0).Text & "' , " & ListView1.Items.Item(i).SubItems(1).Text & " , " & ListView1.Items.Item(i).SubItems(2).Text & " , " & ListView1.Items.Item(i).SubItems(3).Text & ")"
                        cmSQL = New SqlCommand(strSQL, cnSQL)
                        cmSQL.ExecuteNonQuery()
                        cmSQL.Dispose()

Next
End if
Nao sei se é bem assim que queres mas pode ser que te orientes.. penso que assim ele conta que tem 1 linha e só vai adicionar uma vez.
 
pmaster mas nao é isso que eu quero é do genero ele contar de 0 ate 5 que é 6

mas tanto pode Gravar como 3 ou como 2 ou 4 percebes ?

ele assim so me Grava 1 linha
 
Ruben,

Vê lá se é isto que queres:

processar um por um todos os itens de uma ListView para, baseando-te nos valores de cada item da ListView, compores comandos SQL que desejas correr numa BD?

Se é o que pretendes, tens algo do género:

Código:
For Each item As ListViewItem In ListView1.Items
    MessageBox.Show(item.Text)
Next
 
Ruben:

Queres pegar só nos novos registos adicionados depois da última gravação na BD? É isso?

Ou seja, num dado momento tens dois registos na ListView; esses registos estão já inseridos na BD, depois adicionas três registos, o que pretendes é guardar apenas esses três novos registos?

Já agora, que erro te dá?
 
For i = 0 to ListViewItem In ListView1.Items.Count -1
'O teu Codigo ...
Next


isto porque os indices começam em 0 e não em 1, para não dar erro tens que fazer sempre o count -1
Penso que seja isto, se tiver algo erro na sintaxe peço desculpa mas já nao uso vb.net a algum tempo :P
 
Back
Topo