ado.net数据表选择运算符后缺少的操作数



将筛选器应用于数据表时,出现操作数丢失错误。

错误消息如下:

Syntax error: Missing operand after 'PBRule' operator.
   at System.Data.ExpressionParser.Parse()
   at System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
   at System.Data.DataTable.Select(String filterExpression)
   Dim dr As DataRow()
                        Dim sQuery As String
                        sQuery = "PBRuleId={0} AND StartDate<=#{1:MM/dd/yy}# AND (FinishDate>=#{1:MM/dd/yy}# OR FinishDate IS NULL) AND (SELECT * FROM PBRule WHERE PBCodeID IN (SELECT PBCodeId FROM PBRule WHERE PBHoursTypeId IN (3,4,5,6))"
                        dr = Me.PBRule.PBRule.Select(String.Format(sQuery, .PBRuleId, .PBDate))

有人能帮助吗

您的代码在到达"AND(SELECT*FROM PBRule…"部分之前看起来很好。您不能这样选择数据,我很确定您不能使用IN运算符。

它不是SQL SERVER,它最像MS ACCESS类型的语法,但并不完全一样。

相关内容

最新更新