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

[Resolvido]Bd - vb 2005

Discussão em 'Programação' iniciada por Ruben_Barbosa, 6 de Novembro de 2008. (Respostas: 8; Visualizações: 648)

  1. Ruben_Barbosa

    Ruben_Barbosa Power Member

    É o Seguinte , eu tenho uma listview aonde adiciono os dados que quero. So Que depois na minha BD SQL SERVER 2005 Ele So me Escreve os Dados inseridos a 1 Vez e os outros adicionados não escreve :S:S repete o 1 para as outras vezes.

    visto Que na Minha BD TENHO OS CAMPOS REPETIDOS 4 VEZES PARA PODER ESCREVER 4 VEZ NA BD AO INSERIR NO VB

    Meu Codigo

    Código:
     For i = 4 To ListView1.Items.Count
                strSQL = "INSERT INTO Parquelinhas VALUES(" & Combo2(4).Text & " , '" & ComboBox1.Text & "' , '" & ListView1.Items.Item(0).SubItems(0).Text & "' , " & ListView1.Items.Item(0).SubItems(1).Text & " , " & ListView1.Items.Item(0).SubItems(2).Text & " , " & ListView1.Items.Item(0).SubItems(3).Text & " , '" & ListView1.Items.Item(0).SubItems(0).Text & "' , " & ListView1.Items.Item(0).SubItems(1).Text & " , " & ListView1.Items.Item(0).SubItems(2).Text & " , " & ListView1.Items.Item(0).SubItems(3).Text & " , '" & ListView1.Items.Item(0).SubItems(0).Text & "' , " & ListView1.Items.Item(0).SubItems(1).Text & " , " & ListView1.Items.Item(0).SubItems(2).Text & " , " & ListView1.Items.Item(0).SubItems(3).Text & " , '" & ListView1.Items.Item(0).SubItems(0).Text & "' , " & ListView1.Items.Item(0).SubItems(1).Text & " , " & ListView1.Items.Item(0).SubItems(2).Text & " , " & ListView1.Items.Item(0).SubItems(3).Text & ")"
                cmSQL = New SqlCommand(strSQL, cnSQL)
                cmSQL.ExecuteNonQuery()
                cmSQL.Dispose()
            Next
    
    SE Alguem me poder ajudar Agradecia.
     
    Última edição: 26 de Novembro de 2008
  2. alfinete

    alfinete Power Member

    tens campos iguais, ou queres que ele grave varios registos com items diferentes?

    do tipo a tua tabela tem

    id
    nome

    e tu queres inserir quatro nomes..

    é que ter uma tabela com campos iguais é no minimo desnecessario e não normal fazer.

    explicate melhor
     
  3. Ruben_Barbosa

    Ruben_Barbosa Power Member

    É isso por exemplo tenho uma listview com Data Nome , morada , email por exemplo e quero que ele va adicionando os diferentes dados como referiste.

    So que ele na Minha BD so me Adiciona o 1 Dado inserido na listview os outros que vou adicionando ele nao escreve/insere na BD.
     
  4. alfinete

    alfinete Power Member

    mas tu queres inserir varios registos na bd cada um com os campos que falaste?
     
  5. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Não foi um exemplo que dei!!!!
    É assim o que eu quero é o seguinte:
    -Quero adicionar dados a Listview --> que ja tá;
    -Quero adicionar mais do que um dado a Listview --> que tb já tá
    -Por fim Quero , que ao Gravar na BD ele Grava-me os dados inseridos na listview tal igual , isto é , Tenho o campo data I , Data F , Motivo e Codigo. De tal que , quando vou adicionando dados a listview ele adiciona e até ai tudo bem , mas depois na hora de Grava ele na Base de Dados so me escreve os primeiros campos que inseri na BD , ou seja, o segundo campo que vou inserir na Listview ele ja nao grava , escrever o 1 Again;

    Explicito ?
     
  6. ribeiro55

    ribeiro55 Power Member

    Boas,
    Antes de mais, ListView.Items é Zero Based Index, pelo que num ciclo a percorrer todos os seus items, do início ao fim, terá obrigatóriamente que levar ListView.Items.Count-1.

    Porque inicias o ciclo em 4 ?

    Penso não estares a captar a essência de uma ListView. Nem da utilidade de um ciclo.
    É óbvio que irás adicionar sempre o primeiro item se te referencias ao item desta forma:

    Código:
    ListView1.Items.Item(0).SubItems(0).Text
    Repara no item(0): Estás a pedir-lhe sempre o item no indíce zero.

    Se estas a fazer um For i=4 to, então deverás substituír Item(0) para Item(i).
    Desta forma, o número do item é dinâmico e acompanha o indice do ciclo.

    Mas num objecto como a ListView, existem métodos muito mais fáceis e limpos.
    Eis um exemplo de leitura de uma ListView com 3 colunas:

    Código:
            For Each L As ListViewItem In ListView1.Items
                MsgBox(L.Text & "   " & L.SubItems(1).Text & "   " & L.SubItems(2).Text)
            Next
    A framework é linda, só temos de a aproveitar.
    Ainda arrastas muito do VB6. Tens de te abstraír mais.
     
  7. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Ribeiro LOL bgd mas já resolvi o problema ;)

    For i = 0 To ListView1.Items.Coun- 1

    era esse o meu problema ;)

    Bgd na Mesma :D
     
  8. ribeiro55

    ribeiro55 Power Member

    Desculpa lá, mas se continuas a meter:
    Código:
    ListView1.Items.Item(0).SubItems(0).Text
    dentro do ciclo, duvido muito que tenhas resolvido só com o problema do zero based index.

    Mas isso é contigo :007:
     
  9. Ruben_Barbosa

    Ruben_Barbosa Power Member


    Código:
    ListView1.Items.Item(i).SubItems(0).Text
    se fosse 0 lol era sempre a 1 LOL

    bgd na mesma ;)

    mas já resolvi :007:
     

Partilhar esta Página