在 C# 中选择子句

本文关键字:子句 选择 | 更新日期: 2023-09-27 18:30:37

我正在尝试解析一个数据集,其中有三列,分别是存储,速率和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 之间的数字。 当我运行它时,过滤器会更新为"商店 = 6 和费率 = 3"。但是当它碰到这条线时

 _dr = ds.Tables[0].Select(filter);

我收到此错误:

System.Data中发生了类型为"System.Data.EvaluateException"的异常.dll但未在用户代码中处理。无法对 System.String 和 System.Int32 执行"="操作。

在 C# 中选择子句

基于上面的评论:

费率是字符类型

在这种情况下,错误似乎表明过滤器需要将值括起来,就像任何 SQL 过滤器子句一样:

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