private DateTime? pApproveDate=null;
pApproveDate =(Reader["ApproveDate"]==DBNull.Value)?null: Convert.ToDateTime(Reader["ApproveDate"]);
上面的代码在编译时会产生以下错误- 条件表达式的类型无法确定,因为''和'System.DateTime'之间没有隐式转换
private DateTime? pApproveDate=null;
pApproveDate =(Reader["ApproveDate"]==DBNull.Value)?null: Convert.ToDateTime(Reader["ApproveDate"]);
将其转换为 DateTime 类型?
private DateTime?
pApproveDate=null;
pApproveDate =(Reader["ApproveDate"]==DBNull.Value)?(DateTime?)null:
Convert.ToDateTime(Reader["ApproveDate"]);
pApproveDate = (Reader["ApproveDate"]==DBNull.Value)
? (DateTime?)null
: Convert.ToDateTime(Reader["ApproveDate"]);
ConvertToDateTime
返回一个DateTime
,条件运算符认为你正在返回不匹配的类型。如果你使用普通的if语句而不是条件语句,会更简单,因为你不需要显式转换类型,而且更易读,在我看来。
DateTime? pApproveDate = null;
if (Reader["ApproveDate"] == DBNull.Value)
pApproveDate = null;
else
pApproveDate = Convert.ToDateTime(Reader["ApproveDate"]);