未处理SqlException,关键字‘User’附近有语法错误

来源:互联网 发布:svg动画制作软件 编辑:程序博客网 时间:2024/04/28 16:19


       在做三层登录的例子中,碰到一个很棘手的问题,问题显示如上,刚开始看到这个问题,第一反应:数据库连接有问题?或者是sql语句有问题?现在就开始逐一排除掉所有的可能。首先数据库的连接我确保代码没有错误,其次数据库那边也都正常,所以,排除掉;接下来,第二种情况(可真是让我将近郁闷一天):sql语句:我代码中是这样的:

<span style="font-size:18px;">cmd.CommandText = "SELECT * FROM User WHERE UserName = @UserName AND Password = @Password";</span>
根据数据库所学的东西,我实在看不出是哪里出了问题,于是我在数据库中同样查询一遍,结果显示:


      就由此判断SQL语句有问题,于是乎请教高手,高手也说没问题,这可怎么办?只能上网,最终否认自己当初的判断,原因如下:

“user”是SQL Server 保留的关键字,所以用select * from user where语句查询会提示错误,加上中括号,声明其不是保留字。

解决方案:在User上加上中括号[].

原因:加上中括号目的是:防止用户使用的名称和系统保留字冲突。

就这样,问题迎刃而解。

其中,关于“SQL Server 保留的关键字”一说,网上这么解释:

SQL Server使用保留关键字定义,操作,和访问数据库。保留关键字是sql server使用的transact-sql语言的一部分,用语分析和理解transact-sql语句和批处理。


详细的关键字参考如下资料:http://tech.sina.com.cn/roll/2006-09-30/1117116038.shtml





0 0
原创粉丝点击