如何在Linq中将不同表中的2个值相乘?

时间:2014-01-29 06:59:53

标签: c# asp.net linq datalist

我尝试将不同表中的2个值相乘,但它会像这样保持错误:

Imgur

这是我的代码:

    //Label12 is in datalist
    var Label12 = (Label)(((Button)sender).Parent).FindControl("Label12");  

    var item2 = from c in db.OrderTemps
                join o in db.Products
                on c.Prod_ID equals o.Prod_ID
                select new
                {
                   o.Prod_ID,
                   o.Prod_Price, //Type "Decimal"
                   c.Amount, //Type "Integer"
                   c.Total, //Type "Decimal
                   s = o.Prod_Price * c.Amount
                };

     foreach (var i in item2)
     {
        Label12.Text = Convert.ToString(i.s); //an error happen here!!
     }

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

LINQ查询没有任何问题。如果没有记录加入,则没有任何内容可以枚举,您将跳过foreach正文。我认为你Label12等于null。检查发件人父母是否确实存在。

SIDE注意:为什么要尝试循环分配文本?标签将仅保留最后一个值。

答案 1 :(得分:0)

检查 OrderTemps 表中的金额值是否为空。或检查您是否确实拥有ID = Label12的控制器。 您的Linq查询没有错...