ado.net datatable在运算符后选择缺少的操作数

时间:2014-09-16 15:42:26

标签: vb.net datatable 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))

任何人都可以提供帮助

1 个答案:

答案 0 :(得分:0)

你的代码看起来很好,直到它到达部分,“AND(SELECT * FROM PBRule ...”。你不能选择那样的数据,我很确定你不能使用IN运算符。

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