2014-03-27 26 views
0

错误:在运营商没有()在查询表达式

In operator without() in query expression '(EnrollmentsTbl.UserName LIKE ? IN '' [;DATABASE=e:\web\mcfrsitcom0\htdocs\trackingHIPAA\App_Data\subsite.mdb])'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.OleDb.OleDbException: In operator without() in query expression '(EnrollmentsTbl.UserName LIKE ? IN '' [;DATABASE=e:\web\mcfrsitcom0\htdocs\trackingHIPAA\App_Data\subsite.mdb])'.

不知道为什么()在不同的地方要求?

这里是在ASPX vb.net

SelectCommand="SELECT EnrollmentsTbl.AutoNum, EnrollmentsTbl.UserName, EnrollmentsTbl.SubmitTime, EnrollmentsTbl.ClassName, EnrollmentsTbl.ClassDate, EnrollmentsTbl.ClassTime, EnrollmentsTbl.Enrolled, EnrollmentsTbl.WaitListed, EnrollmentsTbl.Instructor, EnrollmentsTbl.DateCompleted, EnrollmentsTbl.Completed, EnrollmentsTbl.Walkin FROM EnrollmentsTbl WHERE (EnrollmentsTbl.UserName LIKE ? IN '' [;DATABASE=e:\web\mcfrsitcom0\htdocs\trackingHIPAA\App_Data\subsite.mdb])" 
+0

你想在这里完成什么?你可以使用'LIKE'或'IN',但是你不能同时使用两个,如果你这样做,它需要采用格式'Where UserName IN('username 1',username 2',... )'。或者你可以在'IN'中选择一条语句。 – Brad

+0

我不确定我是否理解您的示例,我正在从数据库的 – BarclayVision

+0

中进行选择如果在“IN”DB中不存在,我正在选择已存在于“IN”DB中的用户名以在主DB中查找它那么没有记录被返回。 – BarclayVision

回答

2

从您的其他意见,它听起来就像你想要做的事更是这样的:

SelectCommand = _ 
     "SELECT EnrollmentsTbl.AutoNum, EnrollmentsTbl.UserName, EnrollmentsTbl.SubmitTime, " & _ 
      "EnrollmentsTbl.ClassName, EnrollmentsTbl.ClassDate, EnrollmentsTbl.ClassTime, " & _ 
      "EnrollmentsTbl.Enrolled, EnrollmentsTbl.WaitListed, EnrollmentsTbl.Instructor, " & _ 
      "EnrollmentsTbl.DateCompleted, EnrollmentsTbl.Completed, EnrollmentsTbl.Walkin " & _ 
     "FROM EnrollmentsTbl " & _ 
     "WHERE EnrollmentsTbl.UserName IN " & _ 
      "(" & _ 
       "SELECT OtherColumnName " & _ 
       "FROM [;DATABASE=e:\web\mcfrsitcom0\htdocs\trackingHIPAA\App_Data\subsite.mdb].OtherTableName" & _ 
      ")" 

我只是试着用OleDb的在C#中类似的查询和它工作得很好。

+0

谢谢,我离开了远程数据库中的选择部分 - 感谢修复 - 这就是我得到的移动SQL从更新。 – BarclayVision

+0

+1这是如何做到的:) – Brad

2

IN运营商查找存在的值或一个子查询的结果的静态列表值中进行选择。您似乎正在使用它来查找数据库文件中的值。

您也可以将它与LIKE运算符结合使用,这是没有意义的。

也许如果你更好地解释你是什么试图做一个替代可以找到。

+0

最后,我试图在一个数据库中查找不在其他数据库中的记录,但对于我的初始运行,我想查找我知道的记录确保我的语法是正确的。 - 换句话说,寻找用户名,以确保它在两个登记表中的两个不同位置的数据库 – BarclayVision