2016-07-26 492 views
-1

SQL錯誤建立一個應用程序,但後來知道我們需要使用SQL數據庫,即時通訊現在返回並不確定爲什麼?一個簡單的查詢

SQLSTATE [42000]:[微軟] [ODBC SQL Server的驅動程序11] [SQL 服務器]附近關鍵字 '用戶' 不正確的語法。

查詢:

SELECT * 
FROM User WHERE (username = 'james' OR email = 'james') AND password = 
'M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc=' 
+0

您可能需要使用支架像[用戶]。 – FLICKER

回答

2

確保您查詢正確的數據庫和[用戶]表在默認模式中定義。否則,您需要在表名前明確指定模式。

另外,當您使用標識符(列,表或數據庫名稱)時,請將您自己調整爲包圍括號中的那些元素。它使查詢更具可讀性:

SELECT * 
FROM [dbo].[User] WHERE ([username] = 'james' OR [email] = 'james') AND [password] = 
'M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc=' 
+0

[普通]。[用戶]完成了這個把戲:)謝謝隊友 – James

+0

@James請將此標記爲答案。 – user3185569

0

您可能使用了錯誤的數據庫。在連接字符串中指定數據庫名稱,或完全限定您的表名稱。

此外,「用戶」是reserved word。查詢改成這樣:

SELECT * FROM yourDatabaseName.dbo.[User] WHERE (username = 'james' OR email = 'james') AND password = 'M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc=' 
+0

只是給了一個去,但由於某種原因返回相同的東西...]無效的對象名稱'用戶'。用查詢:「SELECT * FROM [User] WHERE(username ='james'OR email ='james')AND password ='M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm + R8Esc ='' – James

+0

edited。您的連接字符串可能是錯誤的,或者您可能無法訪問表格。 –

0

試試這個選擇用戶,不知道,但嘗試一下

 SELECT user 
     WHERE username = 'james' OR email = 'james' 
     AND password ='M4erz2BE/N7NYyE40UJRo5W1E1ZiqKpOMWQhm+R8Esc='