我必须做一个c#搜索记录从sql server数据库数组使用3个数据元素。其中一个数据元素必须是名为DateOfBirth的列中的DateTime元素。不幸的是,在这一列中有很多空值,我无法弄清楚如何将DateTime变量与NULL
值进行比较。我看到很多答案似乎接近我需要的,但没有任何帮助。谢谢你的帮助,这是我的格式。
if ((DateTime)dt == (DateTime)temp[i].Individual.DateOfBirth)
GlobalNum3.bnum3 = 1;
我假设dt
已经是DateTime
,在这种情况下,它不能为空(DateTime
是struct
),没有必要强制转换它。此外,temp[i].Individual.DateOfBirth
也可能是DateTime
,因此也不可能是null
,或者它是Nullable<DateTime>
。
假设两者都是DateTimes
, DB nulls
将被设置为DateTime.MinValue
,所以只需比较值:
if (dt == (DateTime)temp[i].Individual.DateOfBirth)
{
GlobalNum3.bnum3 = 1;
}
然而,如果temp[i].Individual.DateOfBirth
是Nullable<DateTime>
,它可能是null
,或者可能根本没有值,所以像这样使用它:
var possibleDateOfBirth = temp[i].Individual.DateOfBirth;
if (possibleDateOfBirth != null &&
possibleDateOfBirth.HasValue &&
dt == possibleDateOfBirth.Value)
{
GlobalNum3.bnum3 = 1;
}
如果您正在查询DB,那么尝试测试空值。HasValue
属性如下:
if (temp[i].Individual.DateOfBirth.HasValue && dt == temp[i].Individual.DateOfBirth.Value)
{
GlobalNum3.bnum3 = 1;
}
显然我假设你正在测试DateTime?
属性