2016-07-26 242 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='