protected void btnCadastro_Click(object sender, EventArgs e)
        {
            try
            {

                Produto p = new Produto();

                p.IdFornecedor = Convert.ToInt32(DropDownFornecedor.SelectedValue);
                p.Nome = txtNome.Text;
                p.Preco = Convert.ToDecimal(txtPreco.Text);
                p.Quantidade = Convert.ToInt32(txtQuantidade.Text);
                p.Descricao = txtDescricao.Text;


                ProdutoDal d = new ProdutoDal();
                d.Insert(p);

                lblMensagem.Text = "Produto " + p.Nome + ", cadastrado com sucesso";

                txtNome.Text = string.Empty;
                txtPreco.Text = string.Empty;
                txtQuantidade.Text = string.Empty;
                txtDescricao.Text = string.Empty;
                DropDownFornecedor.SelectedIndex = 0;
            }
            catch (Exception ex)
            {

                lblMensagem.Text = ex.Message;
            }

        }
        protected void gridProduto_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            try
            {
                int index = gridProduto.EditIndex;
                GridViewRow row = gridProduto.Rows[index];

                Produto p = new Produto();
                p.IdProduto = Convert.ToInt32(gridProduto.DataKeys[e.RowIndex].Value.ToString());
                p.Nome = Convert.ToString(((TextBox)(row.Cells[2].Controls[0])).Text);
                p.Preco = Convert.ToDecimal(((TextBox)(row.Cells[3].Controls[0])).Text);
                p.Quantidade = Convert.ToInt32(((TextBox)(row.Cells[4].Controls[0])).Text);
                p.Descricao = Convert.ToString(((TextBox)(row.Cells[5].Controls[0])).Text);

                ProdutoDal d = new ProdutoDal();
                d.Update(p);

                lblMensagem.Text = "Produto Atualizado.";

                gridProduto.EditIndex = -1;
                gridBind();

                
            }
            catch (Exception ex)
            {
                
                lblMensagem.Text = "Erro ao atualizar Produto" + ex.Message;
            }
        }
 public void Update(Produto p)
 {
     try
     {
         OpenConnection();
         Cmd = new SqlCommand("UPDATE Produto SET Nome = @v1, Preco = @v2, Quantidade = @v3, Descricao = @v4 WHERE IdProduto = @v5", Con);
         Cmd.Parameters.AddWithValue("@v1", p.Nome);
         Cmd.Parameters.AddWithValue("@v2", p.Preco);
         Cmd.Parameters.AddWithValue("@v3", p.Quantidade);
         Cmd.Parameters.AddWithValue("@v4", p.Descricao);
         Cmd.Parameters.AddWithValue("@v5", p.IdProduto);
         Cmd.ExecuteNonQuery();
     }
     catch (Exception e)
     {
         
         throw new Exception(e.Message);
     }
     finally
     {
         CloseConnection();
     }
 }
        public List<Produto> FindAll()
        {
            try
            {
                OpenConnection();
                Cmd = new SqlCommand("SELECT p.IdProduto, p.Nome, p.Preco, p.Quantidade, p.Descricao, f.Nome as 'Fornecedor' FROM Produto as p INNER JOIN Fornecedor as f on p.IdFornec = f.IdFornecedor", Con);
                Dr = Cmd.ExecuteReader();

                List<Produto> lista = new List<Produto>();

                while (Dr.Read())
                {
                    Produto p = new Produto();                
                    p.IdProduto = Convert.ToInt32(Dr["IdProduto"]);
                    p.Nome = Convert.ToString(Dr["Nome"]);
                    p.Preco = Convert.ToDecimal(Dr["Preco"]);
                    p.Quantidade = Convert.ToInt32(Dr["Quantidade"]);
                    p.Descricao = Convert.ToString(Dr["Descricao"]);

                    p.Fornecedor = new Fornecedor();
                    p.Fornecedor.Nome = Convert.ToString(Dr["Fornecedor"]);

                    lista.Add(p);
                }
                return lista;
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
            finally
            {
                CloseConnection();
            }
        }
        public void Insert(Produto p)
        {
            try
            {
                OpenConnection();
                Cmd = new SqlCommand("INSERT INTO Produto(IdFornec, Nome, Preco, Quantidade, Descricao) VALUES(@v1, @v2, @v3, @v4, @v5)", Con);
                Cmd.Parameters.AddWithValue("@v1", p.IdFornecedor);
                Cmd.Parameters.AddWithValue("@v2", p.Nome);
                Cmd.Parameters.AddWithValue("@v3", p.Preco);
                Cmd.Parameters.AddWithValue("@v4", p.Quantidade);
                Cmd.Parameters.AddWithValue("@v5", p.Descricao);
                Cmd.ExecuteNonQuery();
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
            finally
            {
                CloseConnection();
            }

        }