1
我有我查詢,以確定是否一定行存在一個數據表,有幾個可能的方案:查詢datatable.AsEnumerable與LINQ
規則1:
Dim rt1 As EnumerableRowCollection(Of Double) = From row In dtCh.AsEnumerable() _
Order By row.Field(Of Int64)("ID") Descending
Where (row.Field(Of String)("L_TYPE") = "A" _
And row.Field(Of Int16)("Customer_Type") = 1)
Select row.Field(Of Double)("Price")
If rt1.Any() Then
return CType(rt1.FirstOrDefault(), Decimal)
End If
規則2:
Dim rt2 As EnumerableRowCollection(Of Double) = From row In dtCh.AsEnumerable() _
Order By row.Field(Of Int64)("ID") Descending
Where (row.Field(Of String)("L_TYPE") = "B" _
And row.Field(Of Int16)("Customer_Type") = 0)
Select row.Field(Of Double)("Price")
If rt2.Any() Then
return CType(rt2.FirstOrDefault(), Decimal)
End If
,並有2個規則,如果我有一個規則,一個返回行,我用個e從第一個查詢返回的價格,如果第一個查詢沒有返回任何內容,那麼我繼續執行第二個規則,並使用第二個的價格,並在必要時使用第三個和第四個的價格...
但是,這看起來有點冗長,我知道所有可能的情況,以及我想要檢查場景的順序,有沒有什麼方法可以將這些結合起來,並通過一個查詢找出價格?
感謝
感謝,單應該已經FirstOrDefault,我編輯的問題,但你的建議是行不通的,因爲可以在同一存在多個場景時間,我只需要依次檢查它們,如果有符合規則1使用的行,如果不移動到規則2等。 – 03Usr