2016-10-05 407 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屬性字段被聲明爲日期時間在我的模型中。所以有一個無效的轉換異常。改變我的模型字段數據類型爲字符串工作。感謝大家。

相關問題