我使用Rowfilter查询具有以下列的数据表:
我的Rowfilter
如下:
dv.RowFilter = UserName_ColumnName + " = '" + CurrentUserName + "' And " + UserID_ColumnName + " = " + CurrentID.ToString() + " And " + UserCode_ColumnName + " Is Null";
On Debugging这是我得到的行过滤器:
dv.RowFilter = USER_NAME = 'mike.sl' And USER_ID = 2753 And USER_CODE Is Null
但是我得到一个异常,指出:'IS'运算符之前缺少操作数。 我搜索了很多网站并尝试了很多选项,但都没有帮助。
奇怪的是它在一个系统上正常工作,但在另一个系统上它仍然失败,尽管代码和值保持不变。
请帮我解决此错误。
提前致谢。
此致 斯瓦特
答案 0 :(得分:0)
奇怪的是,它根本不应该工作,因为根据我发现行筛选器没有IS
的文档...您可以尝试使用ISNULL
函数:< / p>
dv.RowFilter = UserName_ColumnName + " = '" + CurrentUserName + "' And " +
UserID_ColumnName + " = " + CurrentID.ToString() + " And " +
"ISNULL("+ UserCode_ColumnName + ", '-') = '-'";
参考:http://www.csharp-examples.net/dataview-rowfilter/
请确保UserCode_ColumnName
不是空字符串或null
,否则会出现语法错误。
答案 1 :(得分:0)
根据我的评论。
该错误表明UserCode_ColumnName变量在调用时为空。如何或为什么会隐藏在您应用中的其他代码中,但是,搜索它将解决您的问题。