none
Saída de Produto em Windows Form com MySQL RRS feed

  • Pergunta

  • Boa noite pessoal!

    Gostaria muito que alguém me ajuda-se nesta parte do meu projeto ou aponta-se um post, algo do tipo que possa me ajudar. 

    Estou fazendo um pequeno 'Controle de Estoque', sem valores, somente 'nomes' e 'quantidades'.

    Meu banco de dados tem somente uma Tabela e é composta assim:

    (id, código, nome, marca, quantidade)

    Meu Windows Forms Application de "Vendas" eu fiz da seguinte maneira:

    Um ComboBox, para selecionar o 'Nome' do Item; (Já consegui fazer a conexão com o BD)

    Um TextBox, para informar a 'Quantidade';

    Botão Vender; ( Aonde estou com dificuldade )

    Botão Limpar; ( Ta feito )

    Botão Fechar; ( Ta feito )

    OBS: Fiz o ComboBox da seguinte maneira:

    private void CarregarComboBox()
            {
                using (MySqlConnection conexao = ConexaoBD.getInstancia().getConexao())
                {
                    try
                    {
                        conexao.Open();

                        string mSQL = "select id, nome from tb_produto ORDER BY nome";

                        MySqlCommand cmd = new MySqlCommand(mSQL, conexao);
                        MySqlDataAdapter da = new MySqlDataAdapter(cmd);

                        DataTable dtMensagens = new DataTable();
                        da.Fill(dtMensagens);
                        this.cbProduto.DataSource = dtMensagens;
                        this.cbProduto.ValueMember = "id";
                        this.cbProduto.DisplayMember = "nome";

                    }
                    catch (MySqlException msqle)
                    {
                        MessageBox.Show("Erro de acesso ao MySQL: " + msqle.Message, "Erro!");
                    }
                    finally
                    {
                        conexao.Close();
                    }
                }
            }

    Desde já agradeço Muito se alguém me ajudar!

    Atenciosamente,

    Jackson Neves

    terça-feira, 21 de março de 2017 00:24

Respostas

  • Muito obrigado, nobre Jefferson Deroza...

    Com sua lógica eu consegui fazer!! Quebrei a cabeça, mas consegui!

    Fiz da seguinte maneira (Vou colocar o trecho todo, caso alguém esteja na mesma dúvida):

                        

    using (MySqlConnection conexao = ConexaoBD.getInstancia().getConexao())

                {

    try

                    {
                        conexao.Open();
                        MySqlCommand comando = new MySqlCommand();
                        comando = conexao.CreateCommand();

                        comando.CommandText = "UPDATE tb_produto SET quantidade = quantidade -@quantidade WHERE nome = @CbBox";
                        comando.Parameters.AddWithValue("quantidade", txtQuantidade.Text.Trim());
                        comando.Parameters.AddWithValue("CbBox", cbProduto.Text.Trim());


                        int valorRetorno = comando.ExecuteNonQuery();

                        if (valorRetorno < 1)
                            MessageBox.Show("Erro ao Inserir! ", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        else
                            MessageBox.Show("Vendido com Sucesso! ", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        LimparCampos();
                    }


    Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo.

    • Marcado como Resposta Jackson Neves quarta-feira, 22 de março de 2017 02:36
    quarta-feira, 22 de março de 2017 01:01

Todas as Respostas

  • Não ficou muito claro o que vc deseja, entendi que vc não tem ideia de como fazer a parte de venda, ou seja, dar baixa no estoque, seria isso?

    Mesmo que seja da forma mais simples possível, um controle básico de estoque precisa de alguns detalhes mínimos para que funcione, algo que com apenas uma tabela não seria possível. De qualquer forma, para o seu exemplo bastaria vc criar uma rotina que faça UPDATE no campo QUANTIDADE da sua tabela TB_PRODUTO.

    Em resumo seria subtrair o valor informado na tela do campo na tabela, obviamente que antes disso é necessário saber a quantidade existente para saber se tem itens suficientes no estoque.


    terça-feira, 21 de março de 2017 12:24
  • Muito obrigado, nobre Jefferson Deroza...

    Com sua lógica eu consegui fazer!! Quebrei a cabeça, mas consegui!

    Fiz da seguinte maneira (Vou colocar o trecho todo, caso alguém esteja na mesma dúvida):

                        

    using (MySqlConnection conexao = ConexaoBD.getInstancia().getConexao())

                {

    try

                    {
                        conexao.Open();
                        MySqlCommand comando = new MySqlCommand();
                        comando = conexao.CreateCommand();

                        comando.CommandText = "UPDATE tb_produto SET quantidade = quantidade -@quantidade WHERE nome = @CbBox";
                        comando.Parameters.AddWithValue("quantidade", txtQuantidade.Text.Trim());
                        comando.Parameters.AddWithValue("CbBox", cbProduto.Text.Trim());


                        int valorRetorno = comando.ExecuteNonQuery();

                        if (valorRetorno < 1)
                            MessageBox.Show("Erro ao Inserir! ", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        else
                            MessageBox.Show("Vendido com Sucesso! ", "Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        LimparCampos();
                    }


    Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo.

    • Marcado como Resposta Jackson Neves quarta-feira, 22 de março de 2017 02:36
    quarta-feira, 22 de março de 2017 01:01