2014-01-29 71 views
1

我嘗試從不同的表乘以2倍的值,但它保留錯誤是這樣的:如何乘以Linq中不同表格的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!! 
    } 

任何幫助表示讚賞。

回答

1

您的LINQ查詢沒有任何問題。如果沒有記錄加入,那麼將沒有任何枚舉,你會跳過foreach的身體。我認爲你有Label12等於null。檢查它是否確實存在於發件人父項。

旁邊注意:爲什麼你想在循環中分配文本?標籤將只保留最後分配的值。

+0

不好意思。我如何檢查。 –

+0

@OliverCatipon在foreach之前設置斷點並檢查Label12變量的值。如果它是'null'(並且我確信它會是),那麼你應該檢查哪個控件發送了這個事件,檢查這個控件的父母是什麼值,然後去UI並且驗證父母是否有這樣的標籤 –

0

檢查您的金額值是否在OrderTemps表中爲空。或者檢查你是否真的有一個ID = Label12的控制器。 Linq查詢沒有錯......