2012-01-24 61 views
3

问:DateTime为空字符串或null?如何检查?

我要检查的日期时间对null value空在我的报告中的细胞,如果日期时间是null.but我不知道如何做到这一点:它看起来像这样1/1/0001,如果它是空。我希望它是空单元格。

这是我的数据集的数据类型:

enter image description here

,这是我列的表达式的值:

=FormatDateTime(Fields!D_DateTime.Value,2) 
+1

你可以用'DateTime.MinValue' – Marco

+2

日期时间*检查不能*为空。也许你想检查它与DateTime.MinValue? –

+0

'= IIf(FormatDateTime(Fields!D_DateTime.Value,2)= DateTime.' no'MinValue' –

回答

4
=IIf(FormatDateTime(Fields!D_DateTime.Value,2)=CDate("1/1/0001"),"",FormatDateTime(Fields!D_DateTime.Value,2)) 

非常感谢,我想这解决了我的问题。

9

正如我告诉你在我的评论,你应该检查一下你的日期是DateTime.MinValue(日期可以承担的最小值,正好是01/01/0001)。

if (your_date_property == DateTime.MinValue) 
{ 
    // Do what you need 
} 
+0

请问你写出这个表达式吗? –

+0

@just_name:看我的帖子 – Marco

+0

嗯,这是一个报告so他的表达将如下所示: '= IIf(FormatDateTime(Fields!D_DateTime。Value,2),....' –

1

由于datetime是一个结构而不是类,即值类型而不是引用类型;它必须用一些值初始化。它不能有空值。

因此检查默认值,你应该检查平等DateTime.MinValue

if(D_DateTime.Value == DateTime.MinValue) 
{ 
    //write code here for default value handling 
} 
+0

与默认(DateTime)相比,假定对日期时间的初始化知识较少,适用于所有结构(和类)类型。 – weston

+0

@weston:同意。 – Maheep

1

将数据集中的字段类型(rd:TypeName)更改为System.Nullable (Of System.DateTime)。然后你可以简单地测试=Fields!D_DateTime.Value Is Nothing

1

赞@Marco建议你可以检查MinValue。如果要将NULL传递给可空参数,则可以使用以下代码来获取reportviewer参数。

Vb.Net

Dim rpFrom As New ReportParameter("FromDate", New String() {Nothing}, False) 

C#

ReportParameter rpFrom = new ReportParameter("FromDate", new string[] { null }, false); 
相关问题