Datetime 是值类型,不能赋空值。如果你想赋空值,可以用 Datetime? rq
DateTime? rq = DateTime.Now;
rq = null;
后面两个转换是不行的,你可以自己判断如果为空字符串,或者全0,就将rq 赋空值。
Datetime是结构体类型,本质也就是值类型。除了可空类型意外,你也可以尝试string来代替datetime类型。引用类型可以直接赋值为null。
public DateTime a { get; set; }
这个是时间类型,空不是时间类型,当然不行,比如你不赋值,它默认应该是有个最小的时间值的。
应该改下,变成可空类型:public DateTime? a { get; set; }