Inquiridor
DatagridView mandar Base de Dados

Pergunta
-
Boas pessoal ,
Tenho uma datagridview onde mando para lá valores atraves das textbox, e estavam a mandar da datagridview para a base de dados , mas dá-me erro de que (O índice estava fora do intervalo. Tem de ser não negativo e inferior ao tamanho da colecção.
Nome do parâmetro: index)Const constr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Acer\Desktop\Base de Dadosmdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Dim db As New SqlConnection(constr)
db.Open()
Dim varsql As String
varsql = "insert into Vendas(Codigo_Vendas, Unidades, Produto, Subtotal, Total)" & "values(@Codigo_Vendas, @Unidades, @Produto, @Subtotal, @Total)"
Dim cmd As New SqlCommand(varsql, db)
For i As Integer = 0 To DataGridView1.RowCount - 1
cmd.Parameters.Add(New SqlParameter("@Codigo_Vendas", txtvendas.Text))
cmd.Parameters.Add(New SqlParameter("@Unidades", DataGridView1.Rows(i).Cells(1).Value))
cmd.Parameters.Add(New SqlParameter("@Produto", DataGridView1.Rows(i).Cells(2).Value))
cmd.Parameters.Add(New SqlParameter("@Subtotal", DataGridView1.Rows(i).Cells(3).Value)) 'da o erro
'cmd.Parameters.AddWithValue("@Subtotal", DataGridView1.Rows(i).Cells(3).Value)
cmd.Parameters.Add(New SqlParameter("@Total", Lbtotal.Text))
cmd.ExecuteNonQuery()
Next
db.Open()
MsgBox(" inserido com sucesso!", MsgBoxStyle.Information, "Mensagem de Confirmação")
Todas as Respostas
-
-
Já comecei em 0, ele guarda não base de dados mas dá-me erro no codigo de vendas dizendo que O nome da variável '@ Codigo_Vendas' já foi declarado. Nomes de variáveis devem ser exclusivos dentro de um lote de consulta ou procedimento armazenado.
-
-