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

在三层登录系统开发中遇到SqlException,提示'User'附近有语法错误。排查后发现'User'是SQL Server的保留关键字,导致查询出错。解决方案是在'User'前加中括号,避免与保留字冲突,从而解决问题。
摘要由CSDN通过智能技术生成


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

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

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; public class AddUser { static Connection conn = null; static Statement stmt = null; public static boolean AddUser(){ link l=new link(); conn=l.linksql(); String sql = "INSERT INTO User VALUES ('as',24,'男','2135436','fefgs','dsgs')"; // String sql = "INSERT INTO admin VALUES ('124','asfe')"; try { stmt = conn.createStatement(); stmt.executeUpdate(sql); System.out.println("数据添加成功"); stmt.close(); conn.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); System.out.println("数据添加失败"); } return false; } public static void main(String[] args){ AddUser(); } }运行时显示import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; public class AddUser { static Connection conn = null; static Statement stmt = null; public static boolean AddUser(){ link l=new link(); conn=l.linksql(); String sql = "INSERT INTO User VALUES ('as',24,'男','2135436','fefgs','dsgs')"; // String sql = "INSERT INTO admin VALUES ('124','asfe')"; try { stmt = conn.createStatement(); stmt.executeUpdate(sql); System.out.println("数据添加成功"); stmt.close(); conn.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); System.out.println("数据添加失败"); } return false; } public static void main(String[] args){ AddUser(); } }运行显示关键字'User'附近语法错误是怎么回事
06-12
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值