2012-01-24 97 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); 
相關問題