2012-11-16 58 views
0

我想從使用LINQ的數據表中獲取單個行。它似乎獲得了記錄,但我無法使用它。不知道我做錯了什麼。我的LINQ查詢如下:我需要幫助,嘗試使用LINQ從數據表中訪問的行使用LINQ

IEnumerable<DataRow> query = 
     from myRow in dataTable.AsEnumerable() 
     where myRow.Field<int>("AM2MIN") <= Convert.ToInt32(minimumValue) && 
      myRow.Field<int>("AM2MAX") >= Convert.ToInt32(minimumValue) 
     select myRow; 

當我執行以下操作來查看是否存在任何記錄時,它將出錯。

if (query.Any()) 
{ 

} 

InvalidCastException似乎是一致的錯誤。

任何幫助非常感謝!

+1

這是什麼意思,你正試圖將它投入? – CodingGorilla

+1

另一個想法是,'AM2MIN'字段實際上不是'int'嗎? – CodingGorilla

+0

什麼數據庫類型是'AM2MIN'和'AM2MAX'。無效的轉換可能是因爲它們不是INT,而是SMALLINT,BIGINT等。 – McGarnagle

回答

0

看起來像你的一個字段不包含整數值。

驗證這些列的Data Type。還要驗證它們是否允許空值。如果數據類型爲int,但允許空值,則將其轉換爲空值int:myRow.Field<int?>("AM2MIN")並驗證它是否有值。