2015-08-31 14 views
0

我正在讀取excel文件並獲取「指定的轉換無效」 我注意到來自excel的ID和ParentID列有小數點,例如1235的小數點是1235.0,我相信這是造成這個問題。我試圖投但不成功。通過LINQ讀取excel,如何投出列表

var ds = new DataSet(); 

     adapter.Fill(ds, "ErrorCodesExcel"); 

     System.Data.DataTable data = ds.Tables["ErrorCodesExcel"]; 
     var dataParsed = ds.Tables["ErrorCodesExcel"].AsEnumerable(); 


    var query = dataParsed.Select(x => 
       new ErrorCode 
       { 

      ID = x.Field<int>("ID"), 
      ErrorDescription = x.Field<string>("ErrorDescription"), 
      ErrorDescriptionWithParent = x.Field<string>("ErrorDescriptionWithParent"), 
      ParentID = x.Field<int>("ParentID"), 

    }); 

回答

0

在Excel中,單元格的值要麼stringdouble,而DataReader不會爲你做演員,所以你必須從閱讀器讀取double並轉換爲int(鑄件單程):

ID = (int)x.Field<double>("ID"), 
ErrorDescription = x.Field<string>("ErrorDescription"), 
ErrorDescriptionWithParent = x.Field<string>("ErrorDescriptionWithParent"), 
ParentID = (int)x.Field<double>("ParentID"),