2016-03-08 43 views
1

这里是我的脚本:无法转换的源类型System.Nullable <double>

public PlainBrgDataSummaryComplete SummaryComputationPerTransSQLite(long ProgramID) 
{ 
    PlainBrgDataSummaryComplete result = new PlainBrgDataSummaryComplete(); 
    DataSet dataSet = GetPlainBrgDataSQLite(ProgramID); 

    var abcde = dataSet.Tables["dataBridge"] 
     .AsEnumerable() 
     //.Where(a => Convert.ToDateTime(a["reportingDate"].ToString()) >= startOfWeek1 && Convert.ToDateTime(a["reportingDate"].ToString()) < endOfWeek1.AddDays(1)) 
     .GroupBy(a => 1) 
     .Select(d => 
      new PlainBrgDataSummaryTrans 
      { 
       transactionWk6 = d.Sum(a => a.Field<double?>("TranCount")) 

      } 
     ).FirstOrDefault(); 

    result.totaltransaction = new PlainBrgDataSummaryTrans 
    { 
     transactionWk6 = abcde; 
    }; 

    return result; 
} 

我得到的错误 - 不能源类型转换为System.Nullable<double>。具体在transactionWk6 = abcde部分;

+0

是什么transactionWk6的PlainBrgDataSummaryTrans类的类型? – Umamaheswaran

+0

public double? transactionWk6 {get;组; } –

+0

你在运行时正确的错误? – Umamaheswaran

回答

1

abcde已经是一个PlainBrgDataSummaryTrans类型,因为你是投影select声明它。

尝试使用这样的:

result.totaltransaction = abcde; 
return result; 
+0

如果我确实有另一个变种: 变种FGHI = dataSet.Tables [ “Databridge针对”] .AsEnumerable() //.Where(a => Convert.ToDateTime(一个[ “reportingDate”]的ToString() )> = startOfWeek1 && Convert.ToDateTime(一个[ “reportingDate”]。的ToString()) 1) 。选择(d => 新PlainBrgDataSummaryTrans { transactionWk5 = d.Sum(a => a.Field (“TranCount”)) } ).FirstOrDefault(); –

+0

如何将它包含在返回结果中。我试过这个,它只返回1 result.totaltransaction = abcde; result.totaltransaction = fghi; 返回结果; –

+0

它仍然是一样的:你将'select'语句投影到'PlainBrgDataSummaryTrans'对象中,这就是你必须在你的方法中返回的东西。 –

0

米哈伊尔Stancescu应该解决的问题。但考虑到你的返回类型,你不需要额外的任务。你可以像修改代码如下

public PlainBrgDataSummaryComplete SummaryComputationPerTransSQLite(long ProgramID) 
{ 
DataSet dataSet = GetPlainBrgDataSQLite(ProgramID); 

return dataSet.Tables["dataBridge"] 
    .AsEnumerable() 
    //.Where(a => Convert.ToDateTime(a["reportingDate"].ToString()) >= startOfWeek1 && Convert.ToDateTime(a["reportingDate"].ToString()) < endOfWeek1.AddDays(1)) 
    .GroupBy(a => 1) 
    .Select(d => 
     new PlainBrgDataSummaryTrans 
     { 
      transactionWk6 = d.Sum(a => a.Field<double?>("TranCount")) 

     } 
    ).FirstOrDefault(); 

}

+0

返回类型是'PlainBrgDataSummaryComplete'。 – Sakura

相关问题