SSRS报告表达式 - null被视为零?

时间:2012-04-11 07:37:57

标签: vb.net reporting-services null ssrs-2008

考虑这个SSRS值表达式:

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

看起来这只是因为VB.NET是如何工作的,而不是SSRS所做的任何事情造成的。

e.g。这是一些直接的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

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