Jump to content

Retirar produtos da tabela e actualizar


ViraFrangos

Recommended Posts

boa tarde gente, surgiu me outra duvida, agora em relaçao a retirar produtos e actualizar.

tentar explicar, eu tenho 1 tabela com 5 produtos, cada produto tem 1 x de quantidade, a coisa, é que ele so me assume o 1º valor do 1º produto, por exemplo, se for 4monitores, ele assume 4monitores mesmo que sejam ratos, vou deixar o codigo que tenho até ao momento funcional.

http://imageshack.us/f/607/semttuloarn.png/

http://imageshack.us/f/18/87663041.png/

Cumprimentos.

Link to comment
Share on other sites

bom dia outra vez,, bio

UPDATE ReporProd SET [tproduto] = @tproduto, [preco] = @preco, [quantidade] = @quantidade WHERE [tproduto] = @tproduto_x2, disto retirei o parametro repetido e deixei, str = "UPDATE ReporProd SET [Preco] = @Preco, [Quantidade] = @Quantidade WHERE TProduto = '@TProduto'".

mas a minha dificuldade persiste, ele assume sempre o 1º valor.

Link to comment
Share on other sites

nao, ele actualiza o unico que quero, tipo, tiro 1 rato, ele tira um rato, seguindo +- assim

prod quantidade

ratos 5

monitores 10

teclados 3

o erro que ele está a complicar é, que quando eu tiro por exemplo 2 monitores, ele insere com sucesso, em vez de actualizar em 8 apos a venda, ele actualiza , resumindo só toma o valor do 1º campo.

Link to comment
Share on other sites

Se o teu objectivo é actualizar assim que subtrais a quantidade, não vejo onde está a dificuldade. Talvez, no teu código, onde tens o parâmetro @Quantidade, que se recebe o valor de QuantidadeTextbox.Text, deveria ser:

command.Parameters.Add("@Quantidade", OleDbType.VarChar).Value = quantidade

Isto porque no topo do teu código tens lá uma variável que recebe o valor da quantidade (?).

Link to comment
Share on other sites

era isso que eu a tentar explicar desde o inicio e pelos vistos nao me consegui explicar completamente, isto é o genero da minha tabela

prod quantidade

ratos 5

monitores 10

teclados 3

eu no form venda, tenho os campos de venda , nome cliente telefone contribuinte, tipo pagamento, etc, dps tenho 2 combos, onde escolho o produto e o preço, eu tenho a tabela com aqelas quantidades, o que eu preciso é qe quando faça a venda ele me subtraia os valores, no meu caso, se eu fior vender ratos, ele faz tudo corretamente, faz a conta como deve de ser e actualiza na table, mas se eu for por exemplo comprar monitores, ele na quantidade vai me tomar o 1º valor, neste caso ratos, do genero de eu escolher 4 monitores ele ao actualizar vai me subtrair diante do 1º valor, neste caso em vez de actualizar na table para 6, ele vai actualizar para 5, parece que só ve o 1º valor para todos os outros campos.

consegui explicar?

Link to comment
Share on other sites

Agora sim. Portanto, quando tu dizes: "Eu tenho a tabela com aquelas quantidades", presumo que tenhas esses valores num controlo qualquer (DataGridView, ListView, etc)?

Se não tens, o que tens de fazer primeiro é seleccionar a quantidade actual do produto seleccionado na Combobox. Porque só podes subtrair se a quantidade for maior ou igual à quantidade desejada pelo utilizador.

Após seleccionares a quantidade, remetes-a para uma variável.

Dim quantidade_actual As Integer = dR(0).ToString() ' <- Neste exemplo vais buscar os dados via DataReader

https://wiki.portugal-a-programar.pt/dev_net/vb.net/poptextbox/

Depois verificas se é possível subtrair:

if(quantidade_actual >= quantidade_desejadaTextBox.Text) Then

Dim query As String = "UPDATE Tabela SET [quantidade] = @quantidade WHERE produto = @produto"
Dim command As New OleDbCommand(query, connection)

command.Parameters.Add("@quantidade", SqlDbType.VarChar).Value = quantidade_desejadaTextBox.Text
command.Parameters.Add("@produto", SqlDbType.VarChar).Value = produtoCombobox.Text

command.ExecuteNonQuery()
End If
Link to comment
Share on other sites

Exato bio, mas o programa faz me iso, tudo correcto, verifica se tem stock, caso n tenha, dá erro, caso ele tenha ele venda, e subtrai, só que isso só corre se for no 1º campo da grid(neste caso consulta).

prod quantidade

ratos 5

monitores 10

teclados 3

se eu qiser vender 4 ratos, ele checka se á stock, caso tenha ele subtrai corretamente, só que iso só ocorre se for a primeira linha da grid, como ta sublinhado, se eu qiser vender monitores ele em vez de subtrair o qe tem em stock(10) , automaticamente faz me a soma diante das 5 unidades da 1º linha.

Link to comment
Share on other sites

Impossível alguém perceber o que para aí vai rapaz. Tens tantos erros..és novo na linguagem? É que até custa olhar. Vou-te dar uma ajuda maior, o problema é que esta ajuda vai em solução Visual Studio 2012..

https://www.dropbox.com/s/e7k7k3eg8kkjyjo/pegaLa.7z

O que podes fazer, se quiseres, é abrir o ficheiro Form1.vb no Notepad (por exemplo), e copias o código e substituis por um projecto novo que deves criar.

Os controlos que constituem este form são poucos:

2 Combobox

2 Textbox

2 Buttons

1 DataGridView

Sem_T_tulo.png

Edited by bioshock
Link to comment
Share on other sites

Pois não convém fazer isso. As conversões tem de ser feitas. Mas antes de cá vires perguntar, deves dar uma olhadela no google. Perdes menos tempo.

Se vais comparar strings, deves antes fazer:

ReporProdDataGridView.Rows(i).Cells(1).Value.ToString() = ComboBox2.Text

No entanto, o teu problema pode ser outro. O que é que tens na Combobox2 e o que é que tens nessa célula em específico?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.