【发布时间】:2011-10-22 03:10:09
【问题描述】:
我正在使用数据视图过滤我的网格视图。我正在将过滤器命令传递给 dataview,如下所述;
string strFilter= " 0=0 ";
if (Session["SampleSession"] != null)
{
strFilter= strFilter+ " and Emp Name = '" + Session["SampleSession"].ToString() + "' ";
}
dv.RowFilter = strFilter; // Throws an error here!
在上面一行的“Operator Name”操作符之后会抛出 Missing operand 的错误。
我相信有一个我无法捕捉到的小错误。
【问题讨论】:
-
strFilter到达该行时的值是多少? -
string strFilter= " 0=0 ";中的 0=0 是什么? -
@Maysam "0=0" 将是一个占位符,因此您可以轻松地附加 "and EmpName = 'Foo'" 并且仍然具有有效的过滤器表达式。
-
@Xor 我现在的猜测(直到你可以给我
strFilter的值)是你的“SampleSession”变量中有一个单引号字符,它破坏了表达式。有点像穷人的 SQL 注入漏洞。你能传递一个像“Bob O'Hara”这样的员工名字吗? -
@Xor 通过不响应对
strFilter的实际 值的重复请求,您浪费了很多人的时间来尝试回答一个不包含问题。只是对未来的建议:发布实际导致问题的代码;由于您(根据定义)不了解问题,因此在发布问题时很容易意外删除实际原因。
标签: c# asp.net visual-studio dataview