【问题标题】:Create correct Criteria Operator创建正确的条件运算符
【发布时间】:2021-10-12 12:50:32
【问题描述】:

当我必须将字符串字段转换为 Int 时尝试创建 Criteria.Parse 运算符。 操作失败如下:

Message=第 0 行第 15 字符的解析器错误:语法错误; ("Convert.ToInt16{FAILED HERE}(awayML)>130")

这是我的代码:

XPCollection collection = new XPCollection(session1, typeof(TodaysGame), CriteriaOperator.Parse("Convert.ToInt16(awayML)>130"));
int ct = collection.Count;

如何使用 Convert.ToInt16 函数形成标准?

【问题讨论】:

    标签: devexpress criteria xpo


    【解决方案1】:

    条件运算符有自己的语法来将字符串文字转换为 int 值。您需要使用它们而不是系统 Convert.ToInt 函数:

    Function Description Example
    ToInt(Value) Converts Value to an equivalent 32-bit signed integer. ToInt([Value])
    ToLong(Value) Converts Value to an equivalent 64-bit signed integer. ToLong([Value])

    您可以查看 DevExpress 标准语法的完整参考here

    【讨论】:

    • Nikita,我检查了 DevExpress 参考并将我的代码更改为以下内容:“ XPCollection collection = new XPCollection(session1, CriteriaOperator.Parse("ToInt[awayML]) >130 ")); "我仍然收到错误 "Message=Parser error at line 0, character 13: syntax error; ("ToInt[awayML]{FAILED HERE}) >130")"
    • ToInt[(Value]) 在 DevExpress 库 10.1 版中不可用
    【解决方案2】:

    建立这样一个标准的正确方法是:

    CriteriaOperator.Parse("ToInt([awayML]) > 130");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2021-12-28
      • 2020-02-12
      相关资源
      最近更新 更多