在C#

时间:2016-01-14 20:13:33

标签: c#

我正在尝试解析一个包含三列的数据集,名为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执行'='操作。

1 个答案:

答案 0 :(得分:2)

根据上述评论:

  

Rate是char类型

在这种情况下,错误似乎暗示过滤器需要在值周围引用,就像任何SQL过滤器子句一样:

filter = "Store = 6 and Rate = '" + row["RATE"].ToString() + "'";