LISTVIEW - SO SALVA PRIMEIRA LINHA
Boa tarde
Tenho uma listview com quatro colunas. Se tenho apenas um item na list grava no BD, mas se possuo dois ou mais itens só salva o primeiro e dá um aviso como segue:
O nome da variável [ô]@NomeProduto[ô] já foi declarada. O Nome de variáveis devem ser exclusivos em um lote de consultas ou em um procedimento armazenado.
Segue o código para avaliação do possÃveis erros que estou cometendo:
Private Sub btnFinalizaVenda_Click(sender As Object, e As EventArgs) Handles btnFinalizaVenda.Click
If txtTotalVenda.Text = [Ô][Ô] Then
MsgBox([Ô]Não exite nenhum produto vendido.[Ô], MsgBoxStyle.Critical, [Ô]ATENÇÃO[Ô])
txtCodigoBarra.Focus()
Else
Try
sqlCon.Open()
With sqlCmd
.CommandType = CommandType.Text
.CommandText = [Ô][Ô]
For Each ListViewItem In listVendaDireta.Items
.CommandText = [Ô]INSERT INTO TB_VendaBalcao (NomeProduto, PrecoUnitario, Quantidade, TotalItem) VALUES (@NomeProduto, @PrecoUNitario, @Quantidade, @TotalItem)[Ô]
.Connection = sqlCon
.Parameters.Add(New SqlParameter([Ô]@NomeProduto[Ô], SqlDbType.NVarChar)).Value = listVendaDireta.Items(0).Text
.Parameters.Add(New SqlParameter([Ô]@PrecoUnitario[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(1).Text
.Parameters.Add(New SqlParameter([Ô]@Quantidade[Ô], SqlDbType.Int)).Value = listVendaDireta.Items(0).SubItems(2).Text
.Parameters.Add(New SqlParameter([Ô]@TotalItem[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(3).Text
sqlCmd.ExecuteNonQuery()
Next
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
sqlCon.Dispose()
sqlCmd.Dispose()
End Try
frmFinalizaVenda.txtTotalCompra.Text = txtTotalVenda.Text
frmFinalizaVenda.ShowDialog()
End If
End Sub
Se puderem me ajudar, desde já agradeço
Tenho uma listview com quatro colunas. Se tenho apenas um item na list grava no BD, mas se possuo dois ou mais itens só salva o primeiro e dá um aviso como segue:
O nome da variável [ô]@NomeProduto[ô] já foi declarada. O Nome de variáveis devem ser exclusivos em um lote de consultas ou em um procedimento armazenado.
Segue o código para avaliação do possÃveis erros que estou cometendo:
Private Sub btnFinalizaVenda_Click(sender As Object, e As EventArgs) Handles btnFinalizaVenda.Click
If txtTotalVenda.Text = [Ô][Ô] Then
MsgBox([Ô]Não exite nenhum produto vendido.[Ô], MsgBoxStyle.Critical, [Ô]ATENÇÃO[Ô])
txtCodigoBarra.Focus()
Else
Try
sqlCon.Open()
With sqlCmd
.CommandType = CommandType.Text
.CommandText = [Ô][Ô]
For Each ListViewItem In listVendaDireta.Items
.CommandText = [Ô]INSERT INTO TB_VendaBalcao (NomeProduto, PrecoUnitario, Quantidade, TotalItem) VALUES (@NomeProduto, @PrecoUNitario, @Quantidade, @TotalItem)[Ô]
.Connection = sqlCon
.Parameters.Add(New SqlParameter([Ô]@NomeProduto[Ô], SqlDbType.NVarChar)).Value = listVendaDireta.Items(0).Text
.Parameters.Add(New SqlParameter([Ô]@PrecoUnitario[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(1).Text
.Parameters.Add(New SqlParameter([Ô]@Quantidade[Ô], SqlDbType.Int)).Value = listVendaDireta.Items(0).SubItems(2).Text
.Parameters.Add(New SqlParameter([Ô]@TotalItem[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(3).Text
sqlCmd.ExecuteNonQuery()
Next
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
sqlCon.Dispose()
sqlCmd.Dispose()
End Try
frmFinalizaVenda.txtTotalCompra.Text = txtTotalVenda.Text
frmFinalizaVenda.ShowDialog()
End If
End Sub
Se puderem me ajudar, desde já agradeço
Voce não esta limpando os parametros anteriores e assim cria uma duplicidade .. ai esta a correção fiz a limpeza dos parametros assim que a query e executada ;
Private Sub btnFinalizaVenda_Click(sender As Object, e As EventArgs) Handles btnFinalizaVenda.Click
If txtTotalVenda.Text = [Ô][Ô] Then
MsgBox([Ô]Não exite nenhum produto vendido.[Ô], MsgBoxStyle.Critical, [Ô]ATENÇÃO[Ô])
txtCodigoBarra.Focus()
Else
Try
sqlCon.Open()
With sqlCmd
.CommandType = CommandType.Text
.CommandText = [Ô][Ô]
For Each ListViewItem In listVendaDireta.Items
.CommandText = [Ô]INSERT INTO TB_VendaBalcao (NomeProduto, PrecoUnitario, Quantidade, TotalItem) VALUES (@NomeProduto, @PrecoUNitario, @Quantidade, @TotalItem)[Ô]
.Connection = sqlCon
.Parameters.Add(New SqlParameter([Ô]@NomeProduto[Ô], SqlDbType.NVarChar)).Value = listVendaDireta.Items(0).Text
.Parameters.Add(New SqlParameter([Ô]@PrecoUnitario[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(1).Text
.Parameters.Add(New SqlParameter([Ô]@Quantidade[Ô], SqlDbType.Int)).Value = listVendaDireta.Items(0).SubItems(2).Text
.Parameters.Add(New SqlParameter([Ô]@TotalItem[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(3).Text
sqlCmd.ExecuteNonQuery()
.Parameters.Clear();
Next
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
sqlCon.Dispose()
sqlCmd.Dispose()
End Try
frmFinalizaVenda.txtTotalCompra.Text = txtTotalVenda.Text
frmFinalizaVenda.ShowDialog()
End If
End Sub
Private Sub btnFinalizaVenda_Click(sender As Object, e As EventArgs) Handles btnFinalizaVenda.Click
If txtTotalVenda.Text = [Ô][Ô] Then
MsgBox([Ô]Não exite nenhum produto vendido.[Ô], MsgBoxStyle.Critical, [Ô]ATENÇÃO[Ô])
txtCodigoBarra.Focus()
Else
Try
sqlCon.Open()
With sqlCmd
.CommandType = CommandType.Text
.CommandText = [Ô][Ô]
For Each ListViewItem In listVendaDireta.Items
.CommandText = [Ô]INSERT INTO TB_VendaBalcao (NomeProduto, PrecoUnitario, Quantidade, TotalItem) VALUES (@NomeProduto, @PrecoUNitario, @Quantidade, @TotalItem)[Ô]
.Connection = sqlCon
.Parameters.Add(New SqlParameter([Ô]@NomeProduto[Ô], SqlDbType.NVarChar)).Value = listVendaDireta.Items(0).Text
.Parameters.Add(New SqlParameter([Ô]@PrecoUnitario[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(1).Text
.Parameters.Add(New SqlParameter([Ô]@Quantidade[Ô], SqlDbType.Int)).Value = listVendaDireta.Items(0).SubItems(2).Text
.Parameters.Add(New SqlParameter([Ô]@TotalItem[Ô], SqlDbType.Decimal)).Value = listVendaDireta.Items(0).SubItems(3).Text
sqlCmd.ExecuteNonQuery()
.Parameters.Clear();
Next
End With
Catch ex As Exception
MsgBox(ex.Message)
Finally
sqlCon.Dispose()
sqlCmd.Dispose()
End Try
frmFinalizaVenda.txtTotalCompra.Text = txtTotalVenda.Text
frmFinalizaVenda.ShowDialog()
End If
End Sub
MadMax
Muito obrigado novamente. Problema Resolvido.
Muito obrigado novamente. Problema Resolvido.
Tópico encerrado , respostas não são mais permitidas