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

Vb.net ado.net datatable在运算符后选择缺少的操作数,vb.net,datatable,ado.net,Vb.net,Datatable,Ado.net,将筛选器应用于datatable时出现缺少操作数错误 错误消息如下所示: 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.

将筛选器应用于datatable时出现缺少操作数错误

错误消息如下所示:

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))

有人能帮忙吗?

在找到零件之前,您的代码看起来很好,然后从PBRule中选择*。。。。你不能选择这样的数据,我很确定你不能使用IN操作符


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

您的代码在转到部件并从PBRule中选择*。。。。你不能选择这样的数据,我很确定你不能使用IN操作符。这不是SQL SERVER,它最像是访问类型语法。@Steve。谢谢你的帮助。我想我需要使用LINQtoDataSet来获取所需的数据行。作为答案发布,以便可以关闭该行。