doubt Linq to Sql conditions

Asked

Viewed 63 times

3

I have a Gridview with certain products and a dropdown of quantity for each. At an event onClick, products with quantity > 0.

The problem is when I have a "detailed" table, and I invoke it with Linq to SQL. My goal was to compare if it has the item in question. If so, add only the quantity. If not, add the quad and price item.

Follows the code:

foreach (GridViewRow row in GridView1.Rows)
{
    // Pegando os produtos
    Label lblProdutoID = row.FindControl("lblProdutoID") as Label;
    var preco = (from p in db.Produtos
                 where p.ProdutoID == Convert.ToInt32(lblProdutoID.Text)
                 select p.Preco).SingleOrDefault();

    var produto = (from p in db.Produtos
                 where p.ProdutoID == Convert.ToInt32(lblProdutoID.Text)
                 select p).SingleOrDefault();

    int dropDownListText = Convert.ToInt32(((DropDownList)row.FindControl("ddlQtde")).SelectedItem.Value);

    if ((dropDownListText != 0))
    {
        // aqui pegamos os produtos caso tenha no detalhes do pedido
        var nte = (from p in db.DetalhesPedidos
                   where p.PedidoID == Convert.ToInt32(Session["pedido"])
                   where p.ProdutoID == Convert.ToInt32(lblProdutoID.Text)
                   select p).SingleOrDefault();

        if (nte == null)
        {
            DetalhesPedido dp = new DetalhesPedido
            {
                UsuarioID = usurioid,
                PedidoID = novopedido.PedidoID,
                ProdutoID = produto.ProdutoID,
                Qtde = Convert.ToInt32(dropDownListText),
                Preco = Convert.ToDecimal(produto.Preco),
                Total = Convert.ToDecimal(produto.Preco * Convert.ToDecimal(dropDownListText)),
            };

            db.DetalhesPedidos.InsertOnSubmit(dp);
            db.SubmitChanges();
        }
        else if (nte.ProdutoID == produto.ProdutoID)
        {
            nte.Qtde += dropDownListText;
            nte.Total = produto.Preco * nte.Qtde;
            db.SubmitChanges();
        }
    }
}
  • 1

    And what exactly is happening that is not in agreement?

  • Further clarification of your difficulty.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.