C# 语法错误:在';是';操作人员
我正在使用行筛选器查询具有以下列的数据表:C# 语法错误:在';是';操作人员,c#,C#,我正在使用行筛选器查询具有以下列的数据表: 用户名(字符串) 用户ID(INT) 用户代码(字符串) 我的Rowfilter如下所示: dv.RowFilter = UserName_ColumnName + " = '" + CurrentUserName + "' And " + UserID_ColumnName + " = " + CurrentID.ToString() + " And " + UserCode_ColumnName + " Is Null"; 调试时,这是我得到的行
Rowfilter
如下所示:
dv.RowFilter = UserName_ColumnName + " = '" + CurrentUserName + "' And " + UserID_ColumnName + " = " + CurrentID.ToString() + " And " + UserCode_ColumnName + " Is Null";
调试时,这是我得到的行筛选器:
dv.RowFilter = USER_NAME = 'mike.sl' And USER_ID = 2753 And USER_CODE Is Null
然而,我得到了一个异常,它声明:“IS”运算符之前缺少操作数。
我搜索了很多网站,尝试了很多选择,但没有一个有用
奇怪的是,它在一个系统上正常工作,但在另一个系统上却不断失败,尽管代码和值保持不变
请帮助我解决这个错误
提前谢谢
问候,,
Swati奇怪,它根本不应该工作,因为根据我发现的文档,行过滤器没有
is
。。。您可以尝试改用ISNULL
函数:
dv.RowFilter = UserName_ColumnName + " = '" + CurrentUserName + "' And " +
UserID_ColumnName + " = " + CurrentID.ToString() + " And " +
"ISNULL("+ UserCode_ColumnName + ", '-') = '-'";
参考:
请确保UserCode\u ColumnName
不是空字符串或null
,否则会出现语法错误。根据我的评论
错误表明调用时UserCode_ColumnName变量为空。如何或为什么要隐藏在应用程序中的其他代码中,但是,查找这些代码将解决您的问题。这强烈建议UserCode\u ColumnName在失败的代码中返回为空。感谢@BugFinder提供的解决方案。成功了!!!不知何故,我没有为UserCode\u ColumnName添加正确的引用,因为它是空的。不用担心,我会添加它作为答案,这样你就可以将它标记为正确的。谢谢@Thorsten Dittmar的建议。我尝试了那个选项,但我得到了一些异常,指出ISNULL中的参数数量无效。因此,我搜索了MSDN并获得了正确的用法,但这也没有帮助。此外,在下面提到的另一个网站中,他们建议使用“IS”行内过滤器。:)@SwatiDas我修改了代码来修复错误。您真的确定在
UserCode\u ColumnName
中得到了一个值吗?因为我认为用户BugFinder可能也在正确的轨道上。是的,这就是问题所在。我没有获取UserCode\u ColumnName的值。所以现在我已经解决了这个问题,它现在起作用了:)@SwatiDas那么请投票并接受BugFinder的答案,因为他一开始是对的。