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();
}
}
}
And what exactly is happening that is not in agreement?
– Leonel Sanches da Silva
Further clarification of your difficulty.
– Marco Souza