Vb.net SSRS VB IIF语句返回空值错误

Vb.net SSRS VB IIF语句返回空值错误,vb.net,reporting-services,null,Vb.net,Reporting Services,Null,我想知道是否有人能帮助我们理解为什么SSRS会在我的文本框13中返回错误 警告1[rsRuntimeErrorInExpression]textrun“Textbox13.段落[0]”的值表达式包含错误:从字符串“NULL”转换为类型“Date”无效 值Workorder\u Closed\u Date是sql查询的结果,可以填写,也可以为空 =IIF(IsNothing(Fields!Workorder_Closed_Date.Value), reportitems!Textbox13

我想知道是否有人能帮助我们理解为什么SSRS会在我的文本框13中返回错误

警告1[rsRuntimeErrorInExpression]textrun“Textbox13.段落[0]”的值表达式包含错误:从字符串“NULL”转换为类型“Date”无效

值Workorder\u Closed\u Date是sql查询的结果,可以填写,也可以为空

=IIF(IsNothing(Fields!Workorder_Closed_Date.Value),
    reportitems!Textbox13.Value="open",
    reportitems!Textbox13.Value="closed")

如果该表达式适用于
Textbox13
,则该表达式适用于:

=IIf(IsNothing(Fields!WorkOrder_Closed_Date.Value), "open", "closed")
请注意,
IIf
同时执行真部分和假部分,因此在条件的每个分支中都需要一个常量表达式,而不是副作用


哦,上帝

警告1[rsRuntimeErrorInExpression]textrun“Textbox13.段落[0]”的值表达式包含错误:从字符串“NULL”转换为类型“Date”无效

您的值不是
null
(或者实际上是
Nothing
)——它是一个字符串文本,包含值
“null”


您需要修复的是数据,而不是报表。

这是
Textbox13
的表达式吗?尝试过这个,但看起来SSRS拒绝了字段!WorkOrder_Closed_Date.Value我之前没有注意到这一点,但我收到以下错误警告1[rsRuntimeErrorInExpression]textrun“Textbox13.段落[0]。TextRuns[0]”的值表达式包含错误:从字符串“NULL”转换为类型“Date”无效。奇怪的是,数据库字段是datatime,这意味着SSRS正在更改字段类型…我想我理解您的说法,即数据库正在将其更改为文本值为NULL的字符串,如果是这种情况,我会感到惊讶,因为数据库来自信誉良好的供应商。我们的数据源(视图、存储过程、内联SQL)可能正在“为方便”进行转换。如果数据库将日期存储为日期,那么就有希望了。
=IIf(condition, value_if_true, value_if_false)