LOOP

DOUGLASBRAGA 04/12/2011 19:29:21
#390565
Boa noite!
Alguém poderia me dizer como eu faço um loop nesse código?

Dim quant As Integer
quant = Val(DgPedido.CurrentRow.Cells([Ô]QUANTIDADE[Ô]).Value)
Dim up As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE PRODUTOS SET QUANTIDADE = QUANTIDADE - @quantidade where codigo[Ô], conecta.GetConexao2)
up.Parameters.AddWithValue([Ô]@quantidade[Ô], Val(quant))
up.ExecuteNonQuery()
up.Dispose()
Refresh()
conecta.Desconectar2()



Gratto!
LROSSI 04/12/2011 21:50:12
#390569
não entendi como deseja implementar... mas vc pode usar for ou while para fazer esse loop, segue modelo:
[c]
for i=0 to 9
[ô]seu codigo aqui para repetir 10 vezes
next[

while fazer=true
[ô]seu codigo aqui enquanto fazer=true
loop

/c]


boa sorte na sua implementação!

DOUGLASBRAGA 04/12/2011 22:50:10
#390571
Pessoal vou explicar melhor...
No meu projeto eu estou na tela de vendas, eu consigo cadastrar minha venda normal na tabela vendas no mysql, ja ate estou usando um loop para adicionar todas as linhas dos itens no meu datagrid.
porem, alem de cadastrar a venda eu tbm preciso dar baixa na quantidade dos meus produtos do banco de dados, logo acima eu postei apenas a parte do codigo onde eu atualizo a quantidade, mas ele esta atualizando a quantidade de todos os produtos do banco de dados.
Vou postar a parte do cadastro da venda inteiro, e se alguem puder me ajudar ou indicar uma outra forma de se fazer essa baixa no banco de dados ficarei agradecido...

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim hora As String
Dim data As String
Dim cod As String
Dim codV As String
hora = Format(TimeOfDay, [Ô]hhmmss[Ô])
data = Format(Date.Today, [Ô]ddMMyy[Ô])
cod = TextCodigoV.Text
codV = (hora + cod + data)

[ô][ô][ô][ô](ONDE CADASTRO TODOS OS ITENS DO DATAGRID DA VENDA NO BANCO DE DADOS, FUNCIONANDO!)

For i = 0 To DgPedido.Rows.Count - 1
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]insert into VENDA(CODVENDA, CODPRODUTO, QUANTIDADE, VALOR, DESCRICAO, CODVENDEDOR, VENDEDOR, DATA) VALUES ([ô][Ô] & _
codV & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]codigo[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]QUANTIDADE[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]VALOR[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]DESCRICAO[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]CODVENDEDOR[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]VENDEDOR[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]DATA[Ô], i).Value & [Ô][ô])[Ô], conecta.GetConexao2)
command.ExecuteNonQuery()
command.Dispose()
Next


[ô][ô][ô][ô](ONDE ESTOU ATUALIZANDO A QUANTIDADE DE PRODUTOS NO BANCO DE DADOS)

Dim quant As Integer
quant = Val(DgPedido.CurrentRow.Cells([Ô]QUANTIDADE[Ô]).Value)
Dim up As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE PRODUTOS SET QUANTIDADE = QUANTIDADE - @quantidade where codigo[Ô], conecta.GetConexao2)
up.Parameters.AddWithValue([Ô]@quantidade[Ô], Val(quant))
up.ExecuteNonQuery()
up.Dispose()
Refresh()
conecta.Desconectar2()

MsgBox([Ô]Venda concluida com sucesso[Ô])
End Sub
SAMUKA 05/12/2011 00:18:25
#390575
Resposta escolhida
Está faltando você definir o Código quer atualizar

  
Dim up As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE PRODUTOS SET QUANTIDADE = QUANTIDADE - @quantidade where codigo=@Codigo[Ô], conecta.GetConexao2)
up.Parameters.AddWithValue([Ô]@quantidade[Ô], Val(quant))
up.Parameters.AddWithValue([Ô]@Codigo[Ô], Val(DgPedido.CurrentRow.Cells([Ô]CODIGO[Ô]).Value)
DOUGLASBRAGA 05/12/2011 12:52:14
#390612
Boa tarde pessoal!
SAMUKA, o seu condigo funcionou, agora ja esta dando baixa apenas naquele produto!
Porem se no meu datagrid tiver mais de 1 item, por exemplo se naquela venda o cliente comprar 01 mouse + 01 teclado a segunda linha do datagrid que é o teclado e nao esta dando baixa no banco, apenas a primeira linha
SAMUKA 05/12/2011 13:49:46
#390617
Execute uma depuração Linha - a - Linha e confirme se o loop FOR está ocorrendo 2 vezes, qdo tem dois produtos
DOUGLASBRAGA 05/12/2011 14:36:34
#390623
SAMUKA o loop esta ocorrendo sim, ele esta inserindo na minha tabela VENDAS do meu banco de dados normal, independente da quantidade de itens no datagrid.
Apenas o UPDATE que vai atualizar a quantidade de produtos na tabela PRODUTOS que esta atualizando somente a primeira linha de item do datagrid e os demais itens nao atualiza...
SAMUKA 05/12/2011 16:30:47
#390643
DOUGLASBRAGA, o UP deve rodar dentro do Loop e não fora.
DOUGLASBRAGA 05/12/2011 20:29:44
#390652
Tentei aqui varias formas, mas ainda nao consegui colocar o UPDATE dentro do loop do datagrid
SAMUKA 05/12/2011 23:59:35
#390661
Assim é pra funcionar.

  
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim hora As String
Dim data As String
Dim cod As String
Dim codV As String
hora = Format(TimeOfDay, [Ô]hhmmss[Ô])
data = Format(Date.Today, [Ô]ddMMyy[Ô])
cod = TextCodigoV.Text
codV = (hora + cod + data)

[ô][ô][ô][ô](ONDE CADASTRO TODOS OS ITENS DO DATAGRID DA VENDA NO BANCO DE DADOS, FUNCIONANDO!)

For i = 0 To DgPedido.Rows.Count - 1
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]insert into VENDA(CODVENDA, CODPRODUTO, QUANTIDADE, VALOR, DESCRICAO, CODVENDEDOR, VENDEDOR, DATA) VALUES ([ô][Ô] & _
codV & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]codigo[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]QUANTIDADE[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]VALOR[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]DESCRICAO[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]CODVENDEDOR[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]VENDEDOR[Ô], i).Value & [Ô][ô],[ô][Ô] & _
DgPedido.Item([Ô]DATA[Ô], i).Value & [Ô][ô])[Ô], conecta.GetConexao2)
command.ExecuteNonQuery()
command.Dispose()



[ô][ô][ô][ô](ONDE ESTOU ATUALIZANDO A QUANTIDADE DE PRODUTOS NO BANCO DE DADOS)

Dim quant As Integer
quant = Val(DgPedido.CurrentRow.Cells([Ô]QUANTIDADE[Ô]).Value)
Dim up As New MySql.Data.MySqlClient.MySqlCommand([Ô]UPDATE PRODUTOS SET QUANTIDADE = QUANTIDADE - @quantidade where codigo=@Codigo[Ô], conecta.GetConexao2)
up.Parameters.AddWithValue([Ô]@quantidade[Ô], Val(quant))
up.Parameters.AddWithValue([Ô]@Codigo[Ô], Val(DgPedido.CurrentRow.Cells([Ô]CODIGO[Ô]).Value)
up.ExecuteNonQuery()
up.Dispose()
Next


Refresh()
conecta.Desconectar2()

MsgBox([Ô]Venda concluida com sucesso[Ô])
End Sub
Tópico encerrado , respostas não são mais permitidas