将筛选器应用于数据表时,出现操作数丢失错误。
错误消息如下:
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类型的语法,但并不完全一样。