我有两个datetime
变量,我想把它们组合在一起。
这是我到目前为止的代码:
Int32 addDay = Convert.ToInt32((ucWait.model.SelectMCCodeAskOutObj as SelectMCCodeAsk_OUT).PRIORITY);
this.dp_RST.SelectedDate = CommonServiceAgent.SelectSysDate().AddDays(addDay);
正在读取sysdate;我试图改变它,从另一个变量中读取。这是我的尝试:
Int32 addDay = Convert.ToInt32((mcnon.model.SelectMCCodeAskOutObj as SelectMCCodeAsk_OUT).PRIORITY);
this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY.AddDays(addDay);
我得到一个错误,AddDays
没有定义
(System.Nullable
没有包含"AddDays"的定义,也没有找到接受类型为"System.Nullable "的第一个参数的扩展方法"AddDays"(您是否缺少using指令或程序集引用?))
错误清楚地指出它将出现在这一行。
this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY.AddDays(addDay);
这是因为SelOutOrderInfo_OUT
Type中的NEXT_DAY
Property为Nullable<DateTime>
。
你可以做
this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY.Value.AddDays(addDay);
但是,您可以检查该值是否为空,否则您可能会遇到问题。
更好的解决方案
var dt = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY;
if (dt.HasValue)
this.dp_RST.SelectedDate = dt.Value.AddDays(addDay);
似乎SelOutOrderInfo_OUT.NEXT_DAY
的类型是Nullable<DateTime>
(日期?是相同的语法糖)并且Nullable<DateTime>
不包含方法AddDays()
您应该首先验证.NEXT_DAY
不返回空值,然后调用AddDays()
的基础值。
根据您使用的c#版本,您应该能够执行
this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY
.Value? // Check for null before attempting to add days.
.AddDays(addDay);