'='运算符后缺少操作数

时间:2013-05-21 07:03:51

标签: c# dataview rowfilter

我有这行代码使用数据视图view_1,我正在尝试使用RowFilter按product_name及其大小过滤datagridview。 这是代码:

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

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

4 个答案:

答案 0 :(得分:7)

'AND

时缺少空白区域

所以替换

'AND 

' AND 

<击>

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

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

甚至更好,使用String.Format正如其他人所评论的那样,因为它提高了可读性:

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

答案 1 :(得分:4)

像这样写

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);  

答案 2 :(得分:1)

我不知道出了什么问题,如果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 + "";
            }

答案 3 :(得分:0)

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

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