1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

vb-2005 ajuda

Discussão em 'Programação' iniciada por Ruben_Barbosa, 20 de Novembro de 2008. (Respostas: 11; Visualizações: 719)

  1. Ruben_Barbosa

    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 [email protected]
    Ruben1 lol1 [email protected]
    Ruben2 lol2 [email protected]
    Ruben3 lol3 [email protected]
    Ruben4 lol4 [email protected]
    Ruben5 lol5 [email protected]

    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: 20 de Novembro de 2008
  2. pmaster

    pmaster Power Member

    Não entendi muito bem o que querias podias explicar melhor sff? Queres ele grave quando?
     
  3. Ruben_Barbosa

    Ruben_Barbosa Power Member

    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?
     
  4. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Se alguem souber algo, que me diga ;)

    Agradeço desde já qualquer ajuda :D:D
     
  5. pmaster

    pmaster Power Member

    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.
     
  6. Ruben_Barbosa

    Ruben_Barbosa Power Member

    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
     
  7. Avenzel

    Avenzel Power Member

    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
    
     
  8. Ruben_Barbosa

    Ruben_Barbosa Power Member

    avenzel :S , Não :(:( e desde já agradeco a coloboração de todos.

    MAs é Assim vou por um imagem para tem ideia.

    Link
     
    Última edição pelo moderador: 21 de Novembro de 2008
  9. Avenzel

    Avenzel Power Member

    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á?
     
  10. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Última edição pelo moderador: 21 de Novembro de 2008
  11. dElpH!

    dElpH! 1st Folding then Sex

    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
     
  12. Ruben_Barbosa

    Ruben_Barbosa Power Member

    For i = 0 to ListView1.Items.Count -1
    era isto que me faltava o -1 LOL

    Bgd pessoal pela ajuda ;)
     

Partilhar esta Página