我需要帮助尝试使用LINQ从数据表访问的行

时间:2012-11-16 21:19:15

标签: c# linq datatable linq-to-objects

我正在尝试使用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 个答案:

答案 0 :(得分:0)

看起来您的某个字段不包含整数值。

验证这些列的Data Type。还要验证是否允许Null。如果数据类型为int,但允许为空,则转换为可为空的int:myRow.Field<int?>("AM2MIN")并验证它是否有值。