2016-10-05 411 views
0

指定的转换在行中无效错误:select new File.Models.FileDetail()。代码中的DTTT是一个数据表,FileDetial是一个模型中的一个类,它具有Filename,Dt,receivedcount和status params。我检查了所有的Field数据类型,它们是正确的。不知道为什么我得到这个错误。System.InvalidCastException:指定的转换无效(linq查询)

return (from row in DTTT.AsEnumerable() 
         select new File.Models.FileDetail() 
         { 
          Filename = row.Field<string>("name"), 
          Dt = row.Field<DateTime?>("Dt"), 
          ReceivedCount = row.Field<int?>("count"), 
          status = row.Field<string>("status") 

         } 

        ).ToList(); 
+0

是'Dt'和'ReceivedCount'是否可以空? –

+0

它们各自的DbType是什么?'Filename,Dt,receivedcount,status',它们中的一个不是你正试图进行类型转换的类型 –

+0

该方法的返回类型是什么? – Enigmativity

回答

0

您应该能够将它转换为TimeSpan:我的 “DT” 字段的

Dt = row.Field<TimeSpan>("Dt"); 

OR

Dt = (DateTime)(row.Field<DateTime>("Dt") == DBNull.Value ? DateTime.MinValue :row.Field<DateTime>("Dt")); 
0

DBTYPE是焦炭,ReceivedCount属性字段被声明为日期时间在我的模型中。所以有一个无效的转换异常。改变我的模型字段数据类型为字符串工作。感谢大家。

相关问题