gpt4 book ai didi

c# - 正确使用DBNull

转载 作者:行者123 更新时间:2023-12-02 13:31:29 24 4
gpt4 key购买 nike

有人可以告诉我 DBNull 的正确使用方法吗?我正在开发一个 MVC3 项目,该项目在 Controller 中具有此查询。

我有一个 linq 查询,它返回一个我知道在第一个周期没有值的字段:

var qryGetBirthdate = (from c in db.Customer
select new
{
c.Birthdate
}
).FirstOrDefault();

在数据库中,Birthdate 是 Datetime 类型,为 null。

我为此所做的检查是错误的:

 if ( !DBNull.Value.Equals(qryGetBirthdate.Birthdate))
{
DateTime? dob = qryGetBirthdate.Birthdate;
}

我尝试过其他博客的变体,但找不到答案。基本上我想要的是捕获“qryGetBirthdate.Birthdate”尚不存在的事实。我得到的只是该对象未设置为我知道的引用的异常。

我做错了什么?

最佳答案

如果序列为空,

FirstOrDefault 将返回引用类型的 null。这就是 qryGetBirthdate.Birthdate 处出现 NullRefernceException 的原因。因此检查它是否为空:

if(qryGetBirthdate != null)
{
// now you can access it safely
}

但是,您不需要创建匿名类型。

DateTime? firstBirthdate = (from c in db.Customer 
select c.Birthdate).FirstOrDefault();

关于c# - 正确使用DBNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18644868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com