1

我使用LightSwitch的(學習..)與VB.Net,這是我的問題: 我有一些表稱爲tOrdertProduct
我在做一個tOrder計算性能有UNITPRICE和TOTALPRICE ..總價格是很容易做:分配的相關表的值到新表中VS LightSwitch的

​​

的問題是與unitPrice。根據用戶選擇,我無法找到自動分配tProduct中的Price的值的方法。可以說在tProduct有3件商品。產品A的價格爲5,產品B的價格爲10,產品C的價值爲20.我需要在「新訂單」的屏幕上根據用戶的選擇(如果用戶需要ProductA/Product B /產品C)UnitPricetOrder自動更改爲用戶看在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

您的代碼被前tProduct實際上有一個值調用,所以tyring引用其價格屬性將導致錯誤。

您與第二段代碼非常接近。它只是需要:

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 

你應該總是檢查(或沒有在VB),換句話說,一個實體有一個值,使用其任何屬性之前。你也不能在一個比較使用<>沒有,你必須使用狀態並沒有

一個簡單的替代方法是寫這樣的代碼(雖然以上版本也沒關係):

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