public void Alterar(Produtoinformation produto)
        {
            //conexao
            SqlConnection cn = new SqlConnection();

            try
            {
                cn.ConnectionString = Dados.StringDeConexao;
                //command
                SqlCommand cmd = new SqlCommand();
                cmd.Connection  = cn;
                cmd.CommandText = "update Produtos set nome = @nome, preco = @preco, estoque = @estoque where codigo = @codigo;";

                cmd.Parameters.AddWithValue("@codigo", produto.Codigo);
                cmd.Parameters.AddWithValue("@nome", produto.Nome);
                cmd.Parameters.AddWithValue("@preco", produto.Preco);
                cmd.Parameters.AddWithValue("@estoque", produto.Estoque);

                cn.Open();
                produto.Codigo = Convert.ToInt32(cmd.ExecuteScalar());
            }
            catch (SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                cn.Close();
            }
        }
        public void Inserir(Produtoinformation produto)
        {
            //conexao
            SqlConnection cn = new SqlConnection();

            try
            {
                cn.ConnectionString = Dados.StringDeConexao;
                //command
                SqlCommand cmd = new SqlCommand();
                cmd.Connection  = cn;
                cmd.CommandText = "insert into Produtos(nome, preco, estoque) values (@nome, @preco, @estoque); select @@IDENTITY;";

                cmd.Parameters.AddWithValue("@nome", produto.Nome);
                cmd.Parameters.AddWithValue("@preco", produto.Preco);
                cmd.Parameters.AddWithValue("@estoque", produto.Estoque);

                cn.Open();
                produto.Codigo = Convert.ToInt32(cmd.ExecuteScalar());
            }
            catch (SqlException ex)
            {
                throw new Exception("Erro : " + ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                cn.Close();
            }
        }
        private void btnAlterar_Click(object sender, EventArgs e)
        {
            if (txtCod.Text.Trim().Length == 0)
            {
                MessageBox.Show("Um produto deve ser selecionado para alteração");
            }
            else
            {
                try
                {
                    Produtoinformation produto = new Produtoinformation();
                    produto.Codigo  = int.Parse(txtCod.Text);
                    produto.Nome    = txtNomeProduto.Text;
                    produto.Preco   = decimal.Parse(txtPreco.Text);
                    produto.Estoque = Convert.ToInt32(txtxEstoque.Text);

                    ProdutosBLL obj = new ProdutosBLL();
                    obj.Alterar(produto);
                    MessageBox.Show("O produto foi alterado com sucesso!");

                    AtualizaGrid();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro: " + ex.Message);
                }
            }
        }
        public void Inserir(Produtoinformation produto)
        {
            // Nome do produto é obrigatório
            if (produto.Nome.Trim().Length == 0)
            {
                throw new Exception("O nome do produto é obrigatório.");
            }

            // O preço do produto não pode ser negativo
            if (produto.Preco < 0)
            {
                throw new Exception("Preço do produto não pode ser negativo.");
            }

            // O estoque também não pode ser negativo
            if (produto.Estoque < 0)
            {
                throw new Exception("Estoque do produto não pode ser negativo.");
            }

            // Se tudo estiver ok, chama a rotina de gravação
            ProdutoDAL obj = new ProdutoDAL();

            obj.Inserir(produto);
        }
        private void btnInserir_Click(object sender, EventArgs e)
        {
            try
            {
                Produtoinformation produto = new Produtoinformation();
                produto.Nome    = txtNomeProduto.Text;
                produto.Preco   = decimal.Parse(txtPreco.Text);
                produto.Estoque = Convert.ToInt32(txtxEstoque.Text);

                ProdutosBLL obj = new ProdutosBLL();
                obj.Inserir(produto);
                MessageBox.Show("O produto foi inserido com sucesso!");
                txtCod.Text = Convert.ToString(produto.Codigo);
                AtualizaGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro: " + ex.Message);
            }
        }
        public void Alterar(Produtoinformation produto)
        {
            if (produto.Nome.Trim().Length == 0)
            {
                throw new Exception("O nome do produto é obrigatório.");
            }

            if (produto.Preco < 0)
            {
                throw new Exception("Preço do produto não pode ser negativo.");
            }

            if (produto.Estoque < 0)
            {
                throw new Exception("Estoque do produto não pode ser negativo.");
            }

            ProdutoDAL obj = new ProdutoDAL();

            obj.Alterar(produto);
        }