0

考虑这个 SSRS 值表达式:

=IIF(First(Fields!MyCol.Value, "MyDataSet")=0, "yes", "no")

MyCol 是一个 Nullable 列。我希望仅在 MyCol 等于 0 时输出“yes”。当 MyCol 为 0 时,上面的代码正确地计算为“yes”。但是,当 MyCol 为 Nothing(即 SQL Server 中的 NULL)时,它也计算为“yes”。这是预期的行为吗?

我不得不求助于以下更长的表达式来获得所需的结果:

=IIF(Not(First(Fields!MyCol.Value, "MyDataSet") is Nothing) And First(Fields!MyCol.Value, "MyDataSet")=0, "yes", "no")

是否有更短的版本也可以使用?

4

1 回答 1

1

看起来这只是由于 VB.NET 的工作原理,而不是由 SSRS 所做的任何事情引起的。

例如,这是一些直接的 VB.NET 代码:

Dim obj As Object = Nothing

If (obj = 0) Then
    MessageBox.Show("obj = 0 : true")
End If

If (obj Is Nothing) Then
    MessageBox.Show("Obj is nothing")
End If

这会在运行时显示两条消息。

于 2012-04-12T00:23:59.130 回答