none
Valor incluídos no DataGridView salva duas linhas[RESOLVIDO] RRS feed

  • Pergunta

  • Olá amigos! Estou com um pequena problema.

    Sou novo nesse assunto de programação em vb.net, e estou desenvolvendo uma aplicação no lugar onde eu trabalho, que é pra ter um controle de peças trocadas por reparo.

    O programa faz um registro muito simples dentro de um arquivo do Access, com numero de OS, Part-Number,Serial da Peça, Billing, Tipo de Serviço e Data e hora. O sistema são apenas 4 pessoas que irão utilizar, então não dei importância ao SGBD.

    Os dados são inseridos no DataGridView para visualização antes de serem armazenados.

    Quando eu armazeno os itens ele salva tudo que contém no DataGridView na base de dados.

    Nesse requisito está funcionando corretamente, mas há apenas um pequeno bug.

    Quando é inserido os dados e são armazenados na base de dados, salva uma linha em branco!

    Por exemplo, salvei 5 registros, na base de dados irá aparecer 6 registros incluídos, dentre eles 5 terão as informações e 1 deles uma linha totalmente vazia!

    Abaixo o código que eu uso para inserir os dados e armazenamento na base de dados:

    'inclui as informações no datagridview
    Public Sub AddList()
            Dim vData As String
            Dim vHora As String
            Dim vOS As String
            Dim vPart As String
            Dim vSerial As String
            Dim vBilling As String
            Dim vServico As String
            Dim vDescricao As String
    
            vData = frm_cadastro.mskData.Text
            vHora = frm_cadastro.mskTime.Text
            vOS = frm_cadastro.mskOS.Text
            vPart = frm_cadastro.txtPart.Text
            vSerial = frm_cadastro.txtSerial.Text
            vBilling = frm_cadastro.mskBilling.Text
            vServico = frm_cadastro.txtServico.Text
            vDescricao = frm_cadastro.lblDescricao.Text
    
           
                frm_cadastro.dgvInsert.Rows.Add(vData, vOS, vPart, vBilling, vSerial, vServico, vDescricao, vHora)
            LimparInclude()
            
    
        End Sub
    
    
    'salva os dados após de inserir-los
    
    Public Sub SalvarLista()
    
    
    
            For i = 0 To frm_cadastro.dgvInsert.Rows.Count - 1
                Dim sql As String = "INSERT INTO Reparo (Data, OS, Part, Billing, Serial, Servico, Descricao, Hora) VALUES ('" & frm_cadastro.dgvInsert.Item("Data", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("OS", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("Part", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("Billing", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("Serial", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("Serviço", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("Descrição", i).Value & "','" & _
                    frm_cadastro.dgvInsert.Item("Hora", i).Value & "')"
    
                Dim scmd As New OleDbCommand(sql, conexao_access)
                conexao_access.Open()
                scmd.ExecuteNonQuery()
                conexao_access.Close()
    
            Next
    
            MsgBox("Salvo com Sucesso!")
            frm_cadastro.dgvInsert.Rows.Clear()
    
            Limpar()
    
    
    
    
        End Sub
    

    Abraço amigos!



    quinta-feira, 23 de junho de 2016 14:45

Respostas

  • Bom dia EmersonOliveira,
    Obrigado por participar no Fórum MSDN.

    Em:

     For i = 0 To frm_cadastro.dgvInsert.Rows.Count - 1
    

    Não deveria ser "...Rows.Count 0"  ?

    Atenciosamente.


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta EmersonOliveira quinta-feira, 23 de junho de 2016 16:25
    quinta-feira, 23 de junho de 2016 15:09
    Moderador

Todas as Respostas

  • Bom dia EmersonOliveira,
    Obrigado por participar no Fórum MSDN.

    Em:

     For i = 0 To frm_cadastro.dgvInsert.Rows.Count - 1
    

    Não deveria ser "...Rows.Count 0"  ?

    Atenciosamente.


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta EmersonOliveira quinta-feira, 23 de junho de 2016 16:25
    quinta-feira, 23 de junho de 2016 15:09
    Moderador
  • Boa tarde Robson, eu fiz desse jeito que me citou e não deu certo! Mas a lógica que você utilizou alterando o valor de -1 para 0 me fez tentar com outros valores. Daí eu eu fiz assim:

      For i = 0 To frm_cadastro.dgvInsert.Rows.Count - 2

    Dessa forma deu certo!

    Obrigado pela força!


    quinta-feira, 23 de junho de 2016 16:25