Baixa no Estoque C SHARP

08/01/2016

0

Olá, tenho o código abaixo para dar baixa no estoque, de itens que são inseridos em um DataGridview, como são livros a quantidade a ser baixada é sempre um de cada...
Coloco o método BaixaEstoque() no botão salvar, mas com este código ele baixa tudo somente do primeiro item do grid, por exemplo se são inseridos três livros no grid a baixa é feita de três no estoque do primeiro livro e dos outros não baixa nada, alguém pode ajudar ?
Desde já agradeço.

[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20160108-163138.png[/img]


public void BaixaEstoque()
        {
            OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\BDBiblioteca.mdb;Jet OLEDB:Database Password = grazi1vini2");

            if (MessageBox.Show("Confirma a Baixa dos Itens ?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
            {
                return;
            }

            try
            {

            int i = 0;

            OleDbCommand comando = new OleDbCommand("UPDATE Estoque SET Saída = Saída + 1 WHERE IDLivro =" + itemLocacaoDataGridView.Rows[i].Cells["IDLivro"].Value.ToString(), conexao);

            conexao.Open();
     
                for (i = 0; i <= itemLocacaoDataGridView.RowCount - 1; i++)
                {
                    int codigo;
                    int.TryParse(itemLocacaoDataGridView.Rows[i].Cells["IDLivro"].Value.ToString(), out codigo);

                    comando.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro !" + ex, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                conexao.Close();
            }
        }
Jair Souza

Jair Souza

Responder

Post mais votado

08/01/2016

try {
	conexao.Open();
	for (i = 0; i <= itemLocacaoDataGridView.RowCount - 1; i++)	{
		OleDbCommand comando = new OleDbCommand("UPDATE Estoque SET Saída = Saída + 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();
}

Raylan Zibel

Raylan Zibel
Responder

Mais Posts

10/01/2016

Jair Souza

Olá, tenho mais uma dúvida...é para dar a entrada, 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 de cada no estoque), sabes o que precisa ser ajustado ?

[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20160110-210750.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();
            }
        }
Responder

11/01/2016

Raylan Zibel

"IDLivro" é a chave primária da tabela ou é uma chave estrangeira?
Responder

11/01/2016

Jair Souza

O IDLivro é a chave estrangeira na tabela Estoque.

[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20160111-133339.png[/img]
Responder

12/01/2016

Jair Souza

Olá, tenho mais uma dúvida...é para dar a entrada, 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 de cada no estoque), sabes o que precisa ser ajustado ?

[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20160110-210750.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();
            }
        }



Alguém tem alguma ajuda ?
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar