我试图离开加入两张桌子:
Dim ausartpreise = From ausart In wpneu.Dataset.Tables(1).AsEnumerable
Group Join wp In wpneu.Dataset.Tables(0).AsEnumerable On ausart.Item(2) Equals wp.Item(0) _
And ausart.Item(3) Equals wp.Item(2)
Into joined_res = Group From joinedrow In joined_res.DefaultIfEmpty _
Select New With {.artnr = ausart.Item(0), .lfdnrkal = ausart.Item(1), .artnrhz = ausart.Item(2), .lfdnr1 = ausart.Item(3), _
.menge = ausart.Item(4), .m = ausart.Item(5), .wpneu = IIf(joinedrow Is Nothing, 0, joinedrow.Item(72))}
如你所见,如果没有比赛,我会抓住。但尽管如此,我还是得到了一个未设置的对象引用' joinedrow
上的错误。
为什么?
答案 0 :(得分:0)
使用If(joinedrow Is Nothing, 0, joinedrow.Item(72))
代替IIf
IIF
不会被短路,无论joinedrow Is Nothing
评估什么,都会评估真假部分。即使它只使用其中一个结果。后来在vb.net中引入了IF(...)
,它只会评估所需的表达式。