我有这行代码,它使用了一个数据视图view_1
,我试图通过 product_name 过滤 datagridview 和它的大小使用RowFilter
. 这是代码:
view_1.RowFilter = "product_name = '" + cboProduct.Text + "' AND size = " + cboSize.Text + "";
当我尝试运行它说的应用程序时Missing operand after '=' operator
。那么缺少的操作数是什么?
您在'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);
像这样写
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);
我不知道出了什么问题,如果cboProduct
and的文本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 + "";
}
如果变量product_name
的值包含空格,则该值需要在过滤器表达式product_name
中用方括号括起来:所以,只需像这样用方括号
将变量括起来[product_name]
view_1.RowFilter = "[product_name] = '" + cboProduct.Text + "' AND size = " +
cboSize.Text + "";