C# 文本框中的ReportViewer IIf表达式返回#错误

C# 文本框中的ReportViewer IIf表达式返回#错误,c#,reportviewer,iif,C#,Reportviewer,Iif,我正在使用ReportViewer进行工作,我正在尝试让IIf表达式与一些使用FormatCurrency()的文本框一起工作。我首先需要IIf语句的原因是,在这个报告中,偶尔会出现空参数。这里的示例是一个装运箱,它可能有值,也可能没有值。如果它有一个值,比如15,它将正确格式化为$15.00。如果没有值,则返回#ERROR。显然这不行 下面是我在另一个报告中使用的一个IIf语句,它工作得非常好(设置文本框的可见性): =IIf(字段!数据集_NAME.Value.ToString()“DELE

我正在使用ReportViewer进行工作,我正在尝试让IIf表达式与一些使用FormatCurrency()的文本框一起工作。我首先需要IIf语句的原因是,在这个报告中,偶尔会出现空参数。这里的示例是一个装运箱,它可能有值,也可能没有值。如果它有一个值,比如15,它将正确格式化为$15.00。如果没有值,则返回#ERROR。显然这不行

下面是我在另一个报告中使用的一个IIf语句,它工作得非常好(设置文本框的可见性):

=IIf(字段!数据集_NAME.Value.ToString()“DELETE”,True,False)
这是一个不起作用的:

=IIf(Parameters!ShipAmt.Value.ToString() <> "", FormatCurrency(Parameters!ShipAmt.Value,2), "")
=IIf(参数!ShipAmt.Value.ToString()“”,格式货币(参数!ShipAmt.Value,2),“”)
IIf似乎可以工作,因为如果我输入一个值,它的格式仍然正确,但如果没有值,它仍然返回#ERROR。有什么想法吗?

对空值调用ToString()会出错。尝试并不是什么都没有

但我认为真正的答案是

=IIf(Parameters!ShipAmt.Value.ToString() <> "", FormatCurrency(Parameters!ShipAmt.Value,2), "")