Usuário com melhor resposta
Valor incluídos no DataGridView salva duas linhas[RESOLVIDO]

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!
- Editado EmersonOliveira quinta-feira, 23 de junho de 2016 16:25
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
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
-
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!
- Sugerido como Resposta Robson William SilvaModerator quinta-feira, 23 de junho de 2016 17:02