【问题标题】:Missing operand after '=' operator'=' 运算符后缺少操作数
【发布时间】:2013-05-21 07:03:51
【问题描述】:

我有这行代码使用数据视图view_1,我正在尝试使用RowFilter 按产品名称及其大小过滤数据网格视图。 代码如下:

view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + "";

当我尝试运行应用程序时,它显示Missing operand after '=' operator。 那么缺少的操作数是什么?

【问题讨论】:

  • '" + cboProduct.Text + "'AND之间取一个空格
  • 使用String.Format的好例子

标签: c# dataview rowfilter


【解决方案1】:

'AND 处缺少空格

所以替换

'AND 

' AND 

size 是 string-column 还是 int-column?如果它是一个字符串,你也需要引号:

AND size = '" + cboSize.Text + "'";

或者更好的是,使用 String.Format 就像其他人评论的那样,因为它提高了可读性:

view_1.RowFilter = string.Format("product_name = '{0}' AND size = '{1}'"
            , cboProduct.Text
            , cboSize.Text);

【讨论】:

  • @Harvey:大小是字符串列还是整数列?如果它是一个字符串,你也需要引号。 AND size = '" + cboSize.Text + "'";。顺便说一句,与其重写您的问题以删除错误的部分,不如添加它仍然无法正常工作的信息。现在我的回答不再有意义,但它可能对其他有类似问题的人有所帮助。
  • 好的,我明白了..在放置一个空格后,我尝试将它放在 else 子句中,现在它可以工作了。谢谢。
  • @Harvey:还编辑了我的答案,向您展示如何使用String.Format 来提高可读性。
【解决方案2】:

这样写

view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + "";

缺少空白问题

编辑

你也可以使用string.Format

view_1.RowFilter =  String.Format("product_name = '{0}' AND size = {1}", cboProduct.Text,cboSize.Text);  

【讨论】:

    【解决方案3】:

    我不知道出了什么问题,如果cboProductcboSize 的文本为空,或者没有进行任何选择并且现在可以正常工作,我尝试先过滤。谢谢你。 这是代码

    if (cboProduct.Text == string.Empty || cboProduct.SelectedIndex == -1 || cboSize.Text == string.Empty || cboSize.SelectedIndex == -1)
                {
                    view_1.RowFilter = string.Empty;
                }
                else
                {
                    view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + "";
                }
    

    【讨论】:

      【解决方案4】:

      如果变量product_name 的值包含空格,则该值需要在过滤器表达式中用方括号括起来: 因此,只需将变量 product_name 像这样用方括号括起来 [product_name]

      view_1.RowFilter = "[product_name] = '" + cboProduct.Text + "' AND size = " + 
      cboSize.Text + "";
      

      【讨论】:

        猜你喜欢
        • 2013-05-14
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 1970-01-01
        相关资源
        最近更新 更多