2014-01-29 3 views
1

나는 다른 테이블에서이 개 값을 곱하려고하지만이 같은 오류를 유지입니다 :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 본문을 건너 뜁니다. 제 생각 엔 Label12null과 같습니다. 보낸 사람 부모에 실제로 있는지 확인하십시오.

사이드 참고 : 텍스트를 루프로 지정하려고하는 이유는 무엇입니까? 레이블에는 마지막 값만 할당됩니다.

+0

실례합니다. 어떻게 확인할 수 있습니까? –

+0

@OliverCatipon은 foreach 전에 breakpoint를 설정하고'Label12' 변수의 값을 확인합니다. 만약 그것이'null' (그리고 나는 그렇게 될 것입니다)라면 어떤 컨트롤이이 이벤트를 보내고 있는지 확인하고,이 컨트롤의 Parent를 가진 값을 확인한 다음 UI로 이동하여 부모에게 그러한 레이블이 있는지 확인해야합니다 –

0

금액이 주문 테 블론 테이블에 있는지 확인하십시오. 또는 ID = Label12 인 컨트롤러가 있는지 확인하십시오. Linq 쿼리에 문제가 없습니다 ...