我正在尝试解析一个包含三列的数据集,名为Store,Rate,然后是OHUNIT。我使用SQL来获取数据集,然后我使用数据行和过滤器来选择我需要的数据。
以下是代码:
DataRow[] _dr = null;
string filter = "";
filter = "Store = 6 and Rate = " + row["RATE"].ToString();
_dr = ds.Tables[0].Select(filter);
if (_dr.Length > 0)
{
DSOH = Convert.ToDecimal(_dr[0]["OHUNIT"]);
TOTOH += DSOH;
}
else
DSOH = 0;
此速率可以是1-5,U或O的数字。当我运行它时,过滤器会更新为“Store = 6和Rate = 3”。但是当它到达这一行时
_dr = ds.Tables[0].Select(filter);
我收到此错误:
System.Data.dll中发生了'System.Data.EvaluateException'类型的异常,但未在用户代码中处理。 无法对System.String和System.Int32执行'='操作。
答案 0 :(得分:2)
根据上述评论:
Rate是char类型
在这种情况下,错误似乎暗示过滤器需要在值周围引用,就像任何SQL过滤器子句一样:
filter = "Store = 6 and Rate = '" + row["RATE"].ToString() + "'";