我从数据库拉结果但是当列中出现空值时我得到一个错误 并使用convert.todatetime格式化日期以显示在gridview中在页面上。linq查询中的空值抛出空值错误
var ua = from utilacti in db.utility_activations
where utilacti.ua_case_number == property.property_case_number
select new
{
id = utilacti.ua_id,
Buyer = utilacti.ua_b,
BuyerPhone = utilacti.ua_b_p,
BuyerEmail = utilacti.ua_b_e,
BrokerAgent = utilacti.ua_ba_n,
BAPhone = utilacti.ua_b_p,
BAEmail = utilacti.ua_b_email,
Date = Convert.ToDateTime(utilacti.ua_d).ToShortDateString(),
TonD = Convert.ToDateTime(utilacti.ua_td).ToShortDateString(),
ToffD = Convert.ToDateTime(utilacti.ua_tod).ToShortDateString(),
ApprovalD = Convert.ToDateTime(utilacti.ua_ad).ToShortDateString()
};
我试图使转换成以下,以便可为空值
Convert.ToDateTime((DateTime?)utilacti.ua_td).ToShortDateString()
但它不工作。
我试着检查空值。我试图做一个如果在那里检查一个值,但它出错。
任何想法。
尝试使用DBNull.Value.Equals(utilacti.ua_td)或任何您的列名是 – gh9
意外的类型代码:DBNull ...没有去 – Prescient
我只是将此视为滥用'var'和匿名类。 ..如果你没有为15个不同的领域(其中一些派生出)编写'select',那么你从来没有遇到过这些问题。 – evanmcdonnal