我有这行代码使用数据视图view_1
,我正在尝试使用RowFilter
按product_name及其大小过滤datagridview。
这是代码:
view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + "";
当我尝试运行应用程序时,它会显示Missing operand after '=' operator
。
那个缺少操作数的是什么?
答案 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)
我不知道出了什么问题,如果cboProduct
和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 + "";
}
答案 3 :(得分:0)
如果变量product_name
的值包含空格,则需要将值包装在过滤器表达式的方括号中:
因此,只需将变量product_name
包装成一对方括号,就像这样
[product_name]
view_1.RowFilter = "[product_name] = '" + cboProduct.Text + "' AND size = " +
cboSize.Text + "";