ATUALIZAR VARIOS ITENS NO BANCO DE DADOS
agradeço por sua disposição em ajudar, mas não deu certo devo estar bestando em alguma coisa
Posta ai como está tentando.
olha altair eu adaptei o codigo que voce postou a minha necessidade, não mudei nada, tentei vincular também um textbox da quantidade do item, que vai ser comprado junto ao datagrid, no caso a celula do item, mas não aconteceu nada, acho que passei batido em alguma coisa
Dim item As Integer = 0
Dim baixa As String
For x = 0 To DataGridView1.RowCount - 1
baixa = DataGridView1.Rows(item).Cells(2).Value
item = +1
Next
Dim item As Integer = 0
Dim baixa As String
For x = 0 To DataGridView1.RowCount - 1
baixa = DataGridView1.Rows(item).Cells(2).Value
item = +1
Next
Boa tarde
For x = 0 To DataGridView1.RowCount - 1
baixa = DataGridView1.Rows(item).Cells(2).Value
Aqui coloca a função do UPDATE
item = +1
Next
Até mais.
For x = 0 To DataGridView1.RowCount - 1
baixa = DataGridView1.Rows(item).Cells(2).Value
Aqui coloca a função do UPDATE
item = +1
Next
Até mais.
Amigo,
Faça uma SP (ou no seu caso uma consulta) no banco para não sobrecarregar o sistema.
Deixe essa tarefa a cargo do SGBD.
Crie uma Stored Procedure (ou uma consulta atualização) que faça o update.
A lógica seria a seguinte.
Passar para a consluta ou SP o codigo do pedido.
Fazer um loop em uma tabela(MovimentoProdutos) onde tenha como campos o codigo do pedido e o codigo do produto e a quantidade vendida.
A cada laço fazer o update na tabela de estoque, fazendo a subtração na tabela de estoque com a quantidade vendida na tabela MovimentoProdutos.
Seria algo assim.
Faça uma SP (ou no seu caso uma consulta) no banco para não sobrecarregar o sistema.
Deixe essa tarefa a cargo do SGBD.
Crie uma Stored Procedure (ou uma consulta atualização) que faça o update.
A lógica seria a seguinte.
Passar para a consluta ou SP o codigo do pedido.
Fazer um loop em uma tabela(MovimentoProdutos) onde tenha como campos o codigo do pedido e o codigo do produto e a quantidade vendida.
A cada laço fazer o update na tabela de estoque, fazendo a subtração na tabela de estoque com a quantidade vendida na tabela MovimentoProdutos.
Seria algo assim.
altair tentei assim e não deu certo, mas valeu vou esfriar um pouco a cabeça, e tentar depois
Dim item As Integer = 0
Dim baixa As String
txtquantidades.Text = item
For x = 0 To DataGridView1.RowCount - 1
baixa = DataGridView2.Rows(item).Cells(2).Value
If command.ExecuteNonQuery Then
command.CommandText = [Ô]UPDATE bac SET diferenca=Estocado - Itens + [Ô] & txtquantidades.Text & [Ô] WHERE Codigo_CO=[Ô] & txtcodigo_produto.Text
item = +1
End If
Next x
Dim item As Integer = 0
Dim baixa As String
txtquantidades.Text = item
For x = 0 To DataGridView1.RowCount - 1
baixa = DataGridView2.Rows(item).Cells(2).Value
If command.ExecuteNonQuery Then
command.CommandText = [Ô]UPDATE bac SET diferenca=Estocado - Itens + [Ô] & txtquantidades.Text & [Ô] WHERE Codigo_CO=[Ô] & txtcodigo_produto.Text
item = +1
End If
Next x
Cara não seria bem isso ai não. Segue a dica do amigo FOXMAN, o ideal seria mesmo criar stored proceduras para realizar esse update.
Caso não saiba, procure na net sobre o assunto que tem muitaaaa coisa mesmo.
Até mais.
Caso não saiba, procure na net sobre o assunto que tem muitaaaa coisa mesmo.
Até mais.
Mas a idéia é essa mesmo, para quem quer trabalhar com 2 ou mais camadas deve estruturar o banco de modo a permitr uma atualização como essa.
Não há a necessidade de ficar criando enormes quantidades de códigos no sistema, sendo que é bem mais fácil a utilização do banco para essa finalidade.
Resumidamente, se você tiver uma venda com 10 items irá passar para a SP apenas o codigo da venda(desde que vc vá armazenando temporariamente cada item vendido em uma tabela temporaria), essa SP irá fazer o update do estoque baseado no codigo do pedido, codigo do produto e quantidade a ser lançada.
Por exemplo, aqui para eu fazer um login basta apenas eu ter as seguintes linhas de códigos.
Acesso = new BLLAcesso();
if(Acesso.Conecta([Ô]FoxMan[Ô], [Ô]1234[Ô], [Ô]nomebase[Ô], [Ô]localhost[Ô], [Ô]frmMain[Ô], Assembly.GetExecutingAssembly()))
{
this.Hide();
return;
}
this.lblretorno.Text = [Ô]Não foi possÃvel estabelecer uma conexão com o banco de dados.PossÃveis causas Nome/Senha de usuário inválido ou servidor não existe!!![Ô];
Tópico encerrado , respostas não são mais permitidas