ROTINA PARA ATUALIZAR CAMPO DA TABELA
Gente.. por favor alguem me ajudaa
tenho uma tabela onde são armazenados os itens comprados..
posteriormente o usuario pode dar desconto à essa venda
e essa rotina que eu estou usando so da certo com um item comprado, com dois ou mais da erro
Private Sub PrecoDesconto()
For i = 0 To dgvVenda.Rows.Count - 1
Dim objCon As SqlConnection
objCon = New SqlConnection([Ô]server=localhost;uid=user;pwd=123;database=Banco[Ô])
objCon.Open()
Dim strSQL As String
strSQL = [Ô]update Item set PrecoUnitario = PrecoUnitario - [Ô] & lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value & [Ô] where CodItem=[ô][Ô] & dgvVenda.Item([Ô]colCodItem[Ô], i).Value & [Ô][ô][Ô]
Dim objComando As New SqlCommand
objComando.CommandType = CommandType.Text
objComando.CommandText = strSQL
objComando.Connection = objCon
objComando.ExecuteNonQuery()
Next
End Sub
tenho uma tabela onde são armazenados os itens comprados..
posteriormente o usuario pode dar desconto à essa venda
e essa rotina que eu estou usando so da certo com um item comprado, com dois ou mais da erro
Private Sub PrecoDesconto()
For i = 0 To dgvVenda.Rows.Count - 1
Dim objCon As SqlConnection
objCon = New SqlConnection([Ô]server=localhost;uid=user;pwd=123;database=Banco[Ô])
objCon.Open()
Dim strSQL As String
strSQL = [Ô]update Item set PrecoUnitario = PrecoUnitario - [Ô] & lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value & [Ô] where CodItem=[ô][Ô] & dgvVenda.Item([Ô]colCodItem[Ô], i).Value & [Ô][ô][Ô]
Dim objComando As New SqlCommand
objComando.CommandType = CommandType.Text
objComando.CommandText = strSQL
objComando.Connection = objCon
objComando.ExecuteNonQuery()
Next
End Sub
Boa tarde,
Pergunta básica... Qual erro? Se descrevedo o erro fica mais fácil lhe ajudar.
Pergunta básica... Qual erro? Se descrevedo o erro fica mais fácil lhe ajudar.
o erro é..
[ô]Sintaxe incorreta próxima a [ô]84[ô]
[ô]Sintaxe incorreta próxima a [ô]84[ô]
Citação:strSQL = [Ô]update Item set PrecoUnitario = PrecoUnitario - [Ô] & lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value & [Ô] where CodItem=[ô][Ô] & dgvVenda.Item([Ô]colCodItem[Ô], i).Value & [Ô][ô][Ô]
Tem coisa errada ai, por exemplo eu lhe aconselho a fazer a conta fora da SQL, dessa forma ai é como se fizesse a conta na SQL que é bem diferente. é mais fácil fazer a conta antes e passar na sql o valor final, ou seja, já calculado.
aqui está a função ja calculada
Private Sub teste()
For i = 0 To dgvVenda.Rows.Count - 1
Dim resul As Integer
resul = lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value
Next
End Sub
como coloco dentro do sql?
Private Sub teste()
For i = 0 To dgvVenda.Rows.Count - 1
Dim resul As Integer
resul = lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value
Next
End Sub
como coloco dentro do sql?
For i = 0 To dgvVenda.Rows.Count - 1
Dim objCon As SqlConnection
objCon = New SqlConnection([Ô]server=localhost;uid=user;pwd=123;database=Banco[Ô])
objCon.Open()
Dim strSQL As String
resul = lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value
PrecoUnitario = precoUnitario - result
strSQL = [Ô]update Item set PrecoUnitario = precounitario [Ô] where CodItem=[ô][Ô] & dgvVenda.Item([Ô]colCodItem[Ô], i).Value & [Ô][ô][Ô]
Dim objComando As New SqlCommand
objComando.CommandType = CommandType.Text
objComando.CommandText = strSQL
objComando.Connection = objCon
objComando.ExecuteNonQuery
faz um debug na variavel strSQL e verifica o comando que está lá, tenta copiar e executar direto pelo seu Gerenciado de banco de dados(sql manager por exemplo).
Deverá aparecer algo assim
update Item set PrecoUnitario = PrecoUnitario - 10/ 2 where CodItem=[ô]1[ô]
caso não consiga encontrar o erro, posta o resultado da strSQL(como o exemplo acima)
t+
Deverá aparecer algo assim
update Item set PrecoUnitario = PrecoUnitario - 10/ 2 where CodItem=[ô]1[ô]
caso não consiga encontrar o erro, posta o resultado da strSQL(como o exemplo acima)
t+
update Item set PrecoUnitario = PrecoUnitario - [Ô] & lblValorD.Text / dgvVenda.Item([Ô]colQtd[Ô], i).Value & [Ô] where CodItem=[ô][Ô] & dgvVenda.Item([Ô]colCodItem[Ô], i).Value & [Ô][ô]
provavelmente o 84 possui casas decimais,entao esta sendo separado por virgula,verifique isso.
faça um step by step pra ver AONDE esta o erro.
provavelmente o 84 possui casas decimais,entao esta sendo separado por virgula,verifique isso.
faça um step by step pra ver AONDE esta o erro.
eu agradeço à todos pela atenção..
ALTAIR148 era isso mesmo, era so fazer as contas fora do SQL que deu tudo certinho.
muito obrigada
ALTAIR148 era isso mesmo, era so fazer as contas fora do SQL que deu tudo certinho.
muito obrigada
Tópico encerrado , respostas não são mais permitidas