Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 545018
            [titulo] => Erro na Entrada no Estoque
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-02-07 18:35:19
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => A
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => [quote][quote]Ajuda...por favor ![/quote]

Alguém tem alguma dica ???[/quote]

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? ) )

Erro na Entrada no Estoque

Jair Souza
   - 13 jan 2016

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...

Clique na imagem para abrir em uma nova janela
#Código

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();
            }
        }

Post mais votado

William (devwilliam)
   - 07 fev 2016


Citação:

Citação:
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?

Jair Souza
   - 28 jan 2016

Ajuda...por favor !

Jair Souza
   - 06 fev 2016


Citação:
Ajuda...por favor !


Alguém tem alguma dica ???

Ruy Salles
   - 07 fev 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.

Jair Souza
   - 08 fev 2016


Citação:

Citação:

Citação:
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.

Jair Souza
   - 08 fev 2016


Citação:
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.


Já verifiquei o IDLivro é individual, como demonstrado na coluna Código do livro...

Ruy Salles
   - 08 fev 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.

Jair Souza
   - 08 fev 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 !