1

에 새로운 테이블에 대한 관련 테이블의 값을 할당합니다.내가 <strong>VB.Net</strong>로 (.. 학습) LightSwitch 사용하고이 내 질문 VS LightSwitch

Private Sub totalPrice_Compute(ByRef result As Decimal) 
    result = quantity * unitPrice 
End Sub 

문제가 unitPrice 함께 :
나는 UNITPRICE과 TOTALPRICE이 .. 총 가격 만들어 쉽게했다가 tOrder에서 계산 된 속성을했다. 사용자 선택에 따라 Price의 값을 tProduct에 자동으로 할당하는 방법을 찾을 수 없습니다. tProduct에는 3 개의 제품이 있다고합니다. 가격 5 인 제품 A, 가격 10 인 제품 B, 값 20 인 제품 C. 사용자 선택에 따라 "신규 주문"화면에서 필요합니다 (ProductA/Product를 원할 경우 B/Product C) UnitPricetOrder 인 경우 사용자가 Price의 실제 가격을 tProduct에 자동으로 표시합니다.

나는 시도했다 :

Private Sub unitPrice_Compute(ByRef result As Decimal) 
      result = Me.tProduct.price 
End Sub 

그러나 오류가 말하는 나타납니다 : NullReferenceException was unhandled by user code

또한 내가 시도 :

Private Sub unitPrice_Compute(ByRef result As Decimal) 
    If Me.tProduct.nameProduct <> Nothing Then 
    result = tProduct.price 
    Else 
    result = 0 
    End If 
End Sub 

그러나 같은 오류 ..

그렇게하지 그것을 해결하는 방법을 아십시오, 또는, 언제, 어떻게 .. 나는 LightSwitch에서 새롭고 매우 감사 할 것입니다. 도와 주시면 ..

고마워요!

+0

. 화면의 스크린 샷을 보여줄 수 있습니까? –

답변

1

는 귀하의 코드는 그래서 그 가격 속성이 오류가 발생합니다 참조 할 tyring, tProduct 실제로 값을 가지고 전에 호출되고있다.

두 번째 코드와 매우 가까웠습니다. 그냥 할 필요가 :

Private Sub unitPrice_Compute(ByRef result As Decimal) 
    If (Me.tProduct IsNot Nothing) Then 
    result = Me.tProduct.price 
    Else 
    result = 0 
    End If 
End Sub 

당신이해야 항상 확인 기업이 속성 중 하나를 사용하기 전에 값을 가지고 즉 널 (null) (또는 VB에서 아무것도)합니다. 또한이 아무것도와 비교 <>을 사용할 수 없습니다, 당신은 또는 을 IsNot가 사용해야합니다.

간단한 대안은 (위의 버전이 너무 괜찮 있지만) 이런 식으로 코드를 작성하는 것입니다 : 당신은 두 엔티티 사이의 관계를 정의 있으리라 믿고있어

Private Sub unitPrice_Compute(ByRef result As Decimal) 
    result = If(Me.tProduct Is Nothing, 0, Me.tProduct.price) 
End Sub