我从SQL-Server检索一些日期时间数据。在我的Web.Api控制器中,我建议数据库数据到我的对象。
这有效:
if (reader["images_lastupload"] == DBNull.Value)
{
mydata.ImagesLastUpload = null;
}
else
{
mydata.ImagesLastUpload = Convert.ToDateTime(reader["images_lastupload"].ToString());
}
db字段" Images_lastupload"可以是NULL。所以我想检查一下。
mydata.ImagesLastUpload是一个可以为空的日期时间。一切正常。
但短版不起作用:
mydata.ImagesLastUpload = (reader["images_lastupload"] == DBNull.Value) ? null : Convert.ToDateTime(reader["images_lastupload"].ToString());
如何使短版本正常工作?我的德国错误是:
Der Typ des bedingten Ausdrucks kann nicht bestimmt werden,weil keine implizite Konvertierung zwischen''和' System.DateTime' erfolgt。
答案 0 :(得分:7)
null
和DateTime
之间没有隐式转换。您可以将null
转换为可空DateTime
:
mydata.ImagesLastUpload = (reader["images_lastupload"] == DBNull.Value) ?
(DateTime?)null : Convert.ToDateTime(reader["images_lastupload"].ToString());
中建议的任何其他方法