如何处理默认日期时间

cod*_*biz 6 c# database asp.net data-formats

我有DAL,我将数据库空值转换为它们在C#中的等效表示.例如:

NULL for Numeric = 0
NULL for String = String.Empty
NULL for DateTime = "1/1/0001" (i.e. DateTime.MinValue)
Run Code Online (Sandbox Code Playgroud)

对于日期而言,问题在于表示层,尤其是在GridViews中.您无法1/1/01向用户显示.

我以前做的是检查if myDate.Year=1 or myDate.Year < AcceptedDate并显示空字符串,但与其他类型不同,似乎是额外的努力

请接受更好的方法.谢谢.

Rom*_*ain 10

使用Nullable数据类型存储空值.

DateTime? value = null;
int? myNullableInt = 1;
value = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)

如何检查变量是否具有值或null

if (value!=null)
Run Code Online (Sandbox Code Playgroud)

字符串值可以存储null,因此没有用于存储null的字符串的不同数据类型.

string var;
if (var == null)
Run Code Online (Sandbox Code Playgroud)

要么

if (String.IsNullOrEmpty(var))
Run Code Online (Sandbox Code Playgroud)

  • +1.当检查null时,无论是那个还是`​​value.HasValue`,无论什么漂浮你的船:) (3认同)

Iho*_*eka 6

您还可以使用DateTime.MinValue常量.

http://msdn.microsoft.com/en-us/library/system.datetime.minvalue.aspx

你的条件是:

if (myDate == DateTime.MinValue)
Run Code Online (Sandbox Code Playgroud)