将值从可空日期时间传递到 Crystal 报告中的日期时间变量
Passing value from Nullable Date Time to Date Time variable in Crystal Report
在我的 ASP.NET MVC 和 Entity Framework 应用程序中,我将数据库 table 列 Approved_Date
创建为可为空。
public DateTime? Approved_Date { get; set; }
然后当我将数据调用到报表时,我创建了一个视图模型并创建了 属性 作为,
public DateTime ApprovedDateDM { get; set; }
在查询中,我无法将数据库 table 中的 Approved_Date
值分配给视图模型 ApprovedDateDM
。我遇到错误
Cannot implicitly convert type 'type1' to 'type2'. An explicit conversion exists (are you missing a cast?)
select new SuspensApprovedList {
ApprovedDateDM = pa.Approved_Date, //Error
ApprovedDateFM = se.FinanceApprovedDate, //Error
ApproverDM = ae.EmpName,
ApproverDessignationDM = ad.Designation,
ApproverDessignationFM = d.Designation,
ApproverFM = fe.EmpName,
}).ToList();
我可以简单地将视图模型 属性 更改为可为空并解决问题,但是当我将此视图模型数据传递给 Crystal 报告时,我收到另一个错误 Crystal报告不允许空值。
有什么办法可以解决这个问题吗?
尝试这样的事情
select new SuspensApprovedList {
ApprovedDateDM = pa.Approved_Date.HasValue?pa.Approved_Date : DateTime.MinValue, //or any default value you prefer.
ApprovedDateFM = pa.FinanceApprovedDate.HasValue?pa.FinanceApprovedDate: DateTime.MinValue,
ApproverDM = ae.EmpName,
ApproverDessignationDM = ad.Designation,
ApproverDessignationFM = d.Designation,
ApproverFM = fe.EmpName,
}).ToList();
或者您可以使用
select new SuspensApprovedList {
ApprovedDateDM = pa.Approved_Date.GetValueOrDefault(), // You can pass the default value also like GetValueOrDefault(defaultDate)
ApprovedDateFM = pa.FinanceApprovedDate.GetValueOrDefault(),
ApproverDM = ae.EmpName,
ApproverDessignationDM = ad.Designation,
ApproverDessignationFM = d.Designation,
ApproverFM = fe.EmpName,
}).ToList();
您还可以使用 null 合并运算符(??= 或 ?? ),如果值不为空,它将 return 值,或者 return 运算符右侧的值
如果你想return当前日期时间以防可空的一个为空,你可以使用以下
批准日期DM = Approved_Date ?? DateTime.Now
在我的 ASP.NET MVC 和 Entity Framework 应用程序中,我将数据库 table 列 Approved_Date
创建为可为空。
public DateTime? Approved_Date { get; set; }
然后当我将数据调用到报表时,我创建了一个视图模型并创建了 属性 作为,
public DateTime ApprovedDateDM { get; set; }
在查询中,我无法将数据库 table 中的 Approved_Date
值分配给视图模型 ApprovedDateDM
。我遇到错误
Cannot implicitly convert type 'type1' to 'type2'. An explicit conversion exists (are you missing a cast?)
select new SuspensApprovedList {
ApprovedDateDM = pa.Approved_Date, //Error
ApprovedDateFM = se.FinanceApprovedDate, //Error
ApproverDM = ae.EmpName,
ApproverDessignationDM = ad.Designation,
ApproverDessignationFM = d.Designation,
ApproverFM = fe.EmpName,
}).ToList();
我可以简单地将视图模型 属性 更改为可为空并解决问题,但是当我将此视图模型数据传递给 Crystal 报告时,我收到另一个错误 Crystal报告不允许空值。
有什么办法可以解决这个问题吗?
尝试这样的事情
select new SuspensApprovedList {
ApprovedDateDM = pa.Approved_Date.HasValue?pa.Approved_Date : DateTime.MinValue, //or any default value you prefer.
ApprovedDateFM = pa.FinanceApprovedDate.HasValue?pa.FinanceApprovedDate: DateTime.MinValue,
ApproverDM = ae.EmpName,
ApproverDessignationDM = ad.Designation,
ApproverDessignationFM = d.Designation,
ApproverFM = fe.EmpName,
}).ToList();
或者您可以使用
select new SuspensApprovedList {
ApprovedDateDM = pa.Approved_Date.GetValueOrDefault(), // You can pass the default value also like GetValueOrDefault(defaultDate)
ApprovedDateFM = pa.FinanceApprovedDate.GetValueOrDefault(),
ApproverDM = ae.EmpName,
ApproverDessignationDM = ad.Designation,
ApproverDessignationFM = d.Designation,
ApproverFM = fe.EmpName,
}).ToList();
您还可以使用 null 合并运算符(??= 或 ?? ),如果值不为空,它将 return 值,或者 return 运算符右侧的值
如果你想return当前日期时间以防可空的一个为空,你可以使用以下
批准日期DM = Approved_Date ?? DateTime.Now