RDLC 报告未正确检测 NULL 值

NDr*_*vic 6 c# reporting rdlc

我在生成 .rdlc 报告时遇到问题。其中一列具有以下表达式:

IIF(CInt(Fields!MyColumn.Value) = 0 or Fields!MyColumn.Value is nothing,"Unknown",Fields!MyColumn.Value)
Run Code Online (Sandbox Code Playgroud)

我还尝试将该字段用作字符串:

=IIF(IsNothing(Fields!MyColumn.Value) or Fields!MyColumn.Value is nothing,"Unknown",Fields!MyColumn.Value.ToString())
Run Code Online (Sandbox Code Playgroud)

当 MyColumn 的值不是 时NULL,报表正确显示该值,但当它是NULL(或转换为 int 类型时为0)时,报表返回#Error。奇怪的是,当我删除 if 函数并仅显示该字段的值时,报告显示 0 或空白(它不返回错误)。我怎样才能解决这个问题?

Der*_*ter 4

您可以尝试在不进行比较的情况下进行验证:

=IIf(Fields!YourColumn.Value
    , Fields!YourColumn.Value
    , "Unknown")
Run Code Online (Sandbox Code Playgroud)

或者反转您的检查(检查它是否存在,而不是检查它是否不存在):

=IIf(Fields!YourColumn.Value > 0
    , Fields!YourColumn.Value
    , "Unknown")
Run Code Online (Sandbox Code Playgroud)

另外,我不确定,但这可能与在同一列中使用不同的值类型有关。尝试对整列使用相同的值类型。比如只输出字符串,或者只输出整数。

如果没有任何效果,您还可以检查代码中的 NULL 值,然后将该值设置为 0 或 -1(左右)。然后您可以在 RDLC 报告中检查这一点。