C# 在'之后缺少操作数;操作员名称';操作人员

C# 在'之后缺少操作数;操作员名称';操作人员,c#,asp.net,visual-studio,dataview,C#,Asp.net,Visual Studio,Dataview,我正在使用dataview筛选我的gridview。我将filter命令传递给dataview,如下所述 string strFilter= " 0=0 "; if (Session["SampleSession"] != null) { strFilter= strFilter+ " and Emp Name = '" + Session["SampleSession"].ToString() + "' "; } dv.RowFilte

我正在使用dataview筛选我的gridview。我将filter命令传递给dataview,如下所述

string strFilter= " 0=0 ";

if (Session["SampleSession"] != null)
        {
            strFilter= strFilter+ " and Emp Name = '" + Session["SampleSession"].ToString() + "' ";
        }
dv.RowFilter = strFilter;  // Throws an error here!
它在上一行的“运算符名称”运算符之后抛出缺少操作数的错误

我相信有一个小错误我无法捕捉。

您的问题是“Emp名称”(列名)包含空格,需要在筛选器表达式中用方括号括起来:

strFilter= strFilter+ " and [Emp Name] = '" + Session["SampleSession"].ToString() + "' ";

当字符串strFilter=“0=0”中的0=0是什么?@Maysam“0=0”将是一个占位符,这样您就可以很容易地附加“and EmpName='Foo'”,并且仍然有一个有效的筛选表达式。@Xor我现在猜测(直到您能给我
strFilter
的值)您的“SampleSession”变量中有一个单引号字符,它正在破坏表达式。有点像穷人的SQL注入漏洞。您是否可能传递员工姓名,如“Bob O'Hara”?@Xor不响应重复请求的strFilter的实际值
。只是对未来的一个建议:发布真正导致问题的代码;因为你(顾名思义)不理解这个问题,所以在发布问题时很容易意外地删除实际原因。