Erro na Entrada no Estoque
Olá, tenho um problema...é para dar a entrada no estoque, no form de Devolução, com o método abaixo está dando entrada correta se marcar uma só linha, se marcar todos está duplicando a entrada(em vez de entrar um livro de cada entra dois em cada no estoque, se tiver três entra três em cada e assim por diante...), se alguém puder ajudar, já tentei tudo que sei...
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20160113-113422.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20160113-113422.png[/img]
public void entradaEstoque() { OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\BDBiblioteca.mdb;Jet OLEDB:Database Password = grazi1vini2"); try { conexao.Open(); for (int i = 0; i <= itemLocacaoDataGridView.RowCount - 1; i++) { if (Convert.ToBoolean(itemLocacaoDataGridView.Rows[i].Cells[0].Value) == true) { OleDbCommand comando = new OleDbCommand("UPDATE Estoque SET Entrada = Entrada + 1 WHERE IDLivro = " + itemLocacaoDataGridView.Rows[i].Cells["IDLivro"].Value.ToString(), conexao); comando.ExecuteNonQuery(); } } } catch (Exception ex) { MessageBox.Show("Erro !" + ex, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { conexao.Close(); } }
Jair Souza
Curtidas 0
Melhor post
William
07/02/2016
Ajuda...por favor !
Alguém tem alguma dica ???
Jair sempre peço paciência em outras salas, o Fórum é colaborativo e as pessoas respondem quando podem!
Quanto a sua dúvida, já debugou o código para ver quantas vezes esse loop está passando pela instrução SQL?
GOSTEI 1
Mais Respostas
Jair Souza
13/01/2016
Ajuda...por favor !
GOSTEI 0
Jair Souza
13/01/2016
Ajuda...por favor !
Alguém tem alguma dica ???
GOSTEI 0
Ruy Salles
13/01/2016
Não consegui detectar erro na rotina que você postou aqui no fórum.
A única situação que imaginei para estar acontecendo isso, é que no IDLivro está sendo o mesmo para todos os livros. Verifique se está ocorrendo isso.
Espero ter ajudado.
A única situação que imaginei para estar acontecendo isso, é que no IDLivro está sendo o mesmo para todos os livros. Verifique se está ocorrendo isso.
Espero ter ajudado.
GOSTEI 0
Jair Souza
13/01/2016
Ajuda...por favor !
Alguém tem alguma dica ???
Jair sempre peço paciência em outras salas, o Fórum é colaborativo e as pessoas respondem quando podem!
Quanto a sua dúvida, já debugou o código para ver quantas vezes esse loop está passando pela instrução SQL?
Eu tenho consciência disto, mas como já se passaram +- 20 dias, fiz o questionamento para trazer o tópico para cima na lista.
O loop está passando pela instrução sql quantas vezes = número de livros que tenha no grid :
Exemplo :
Se tiver 2 livros = passa duas vezes;
Se tiver 3 livros = passa três vezes, e assim por diante.
Isto acontece somente quando se marca todos de uma só vez para devolver...mas se devolver um de cada vez funciona corretamente.
GOSTEI 0
Jair Souza
13/01/2016
Não consegui detectar erro na rotina que você postou aqui no fórum.
A única situação que imaginei para estar acontecendo isso, é que no IDLivro está sendo o mesmo para todos os livros. Verifique se está ocorrendo isso.
Espero ter ajudado.
A única situação que imaginei para estar acontecendo isso, é que no IDLivro está sendo o mesmo para todos os livros. Verifique se está ocorrendo isso.
Espero ter ajudado.
Já verifiquei o IDLivro é individual, como demonstrado na coluna Código do livro...
GOSTEI 0
Ruy Salles
13/01/2016
Verifique o que retorna do banco dados:
itemLocacaoDataGridView.Rows[i].Cells["IDLivro"].Value.ToString()
E qual o valor de i e cada laço do loop.
itemLocacaoDataGridView.Rows[i].Cells["IDLivro"].Value.ToString()
E qual o valor de i e cada laço do loop.
GOSTEI 0
Jair Souza
13/01/2016
Descobri o erro o método entradaEstoque() , estava dentro de outro loop...rrrrrrrrrrrrrrrrrrss...coloquei antes deste loop, e agora funciona perfeitamente.
Foi pela dica de Debugar do William, que comecei a verificar o código a cada linha e achei a minha falha.
Valeu a todos !
Foi pela dica de Debugar do William, que comecei a verificar o código a cada linha e achei a minha falha.
Valeu a todos !
GOSTEI 0