2014-03-27 37 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