比较DateTime变量和DateTime数据类型列,其中包含Null值



我必须做一个c#搜索记录从sql server数据库数组使用3个数据元素。其中一个数据元素必须是名为DateOfBirth的列中的DateTime元素。不幸的是,在这一列中有很多空值,我无法弄清楚如何将DateTime变量与NULL值进行比较。我看到很多答案似乎接近我需要的,但没有任何帮助。谢谢你的帮助,这是我的格式。

if ((DateTime)dt == (DateTime)temp[i].Individual.DateOfBirth)
    GlobalNum3.bnum3 = 1;

我假设dt已经是DateTime,在这种情况下,它不能为空(DateTimestruct),没有必要强制转换它。此外,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.DateOfBirthNullable<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?属性

相关内容

  • 没有找到相关文章

最新更新