3

我有这行代码,它使用了一个数据视图view_1,我试图通过 product_name 过滤 datagridview 和它的大小使用RowFilter. 这是代码:

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

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

4

4 回答 4

7

您在'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);
于 2013-05-21T07:06:54.327 回答
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);  
于 2013-05-21T07:06:51.420 回答
1

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

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 + "";
            }
于 2013-05-21T07:37:01.150 回答
0

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

view_1.RowFilter = "[product_name] = '" + cboProduct.Text + "' AND size = " + 
cboSize.Text + "";
于 2017-12-05T10:03:10.150 回答