【发布时间】:2014-07-18 08:39:21
【问题描述】:
所以我根据提供的列名和过滤器过滤 DataTable。 我已将过滤器指定为 Int64,以便它可以同时支持 Int32 和 Int64 过滤器值。
下面是我用来执行过滤的代码。
private DataTable FilterDataTableByInt(DataTable dt, string columnName, Int64 filter)
{
DataTable Newdt = new DataTable();
if (dt != null && dt.Rows.Count > 0)
{
var result = (from myRow in dt.AsEnumerable()
where myRow.Field<Int64>(columnName) == filter
select myRow);
Newdt = result.AsDataView().ToTable();
}
return Newdt;
}
现在,当 im 过滤的列是 Int64 值时,这可以正常工作。但是,如果列是 Int32,我会得到强制转换异常。它在myRow.Field<Int64>(columnName)区域内例外
知道如何重写它以支持 DataTable 中的 Int32 和 Int64 列类型吗?
【问题讨论】: