2 suwu150 suwu150 于 2016.03.31 22:01 提问

数据库中添加数据出错,提示Insert into语句错误
 String sql="insert into T_EMPLOYER(NAME,SEX,NUMBER) VALUES(?,?,?)";                 
             PreparedStatement ps=conn.prepareStatement(sql);    
            //ps.setString(1,id);
             ps.setString(1, name);
             ps.setString(2, sex);
             ps.setString(3,number);             
上面写法是不是有误??提示下面的结果          

PreparedStatement ps=conn.prepareStatement(sql);
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
?????怎么解啊?

7个回答

fubo1990
fubo1990   2016.04.01 08:01
已采纳

你的字段可能和数据库中的专有名词冲突了。你可以改一下字段名字,再试试,或则在给sql中的字段名加上(键盘!前面的那个)引号。

suwu150
suwu150 解决了,是我的NUMBER问题冲突了,我把NUMBER改为NUMBERANDPHONE之后就完成了正常的插入功能,谢谢各位的提示
一年多之前 回复
CSDNXIAOD
CSDNXIAOD   2016.03.31 22:12

将表中数据以INSERT INTO 语句输出
mdb数据库,一直提示INSERT INTO 语句语法错误
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq_20039385
qq_20039385   2016.03.31 22:12

VALUES(?,?,?,?)里面的“?”要填你实际的值。

suwu150
suwu150 不行啊,如果改为0,则提示java.lang.ArrayIndexOutOfBoundsException: -1 at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1022)
一年多之前 回复
qq_20039385
qq_20039385 ?号是占位符,序号从0开始,改成:ps.setString(0,id); ps.setString(1, name); ps.setString(2, sex); ps.setInt(3,Integer.parseInt(number));
一年多之前 回复
suwu150
suwu150 我是用的是PreparedStatement,是不是values传递的参数只能是3个??
一年多之前 回复
suwu150
suwu150 上面是我的完整语句
一年多之前 回复
suwu150
suwu150 String sql="insert into T_EMPLOYER(ID,NAME,SEX,NUMBER) VALUES(?,?,?,?)"; PreparedStatement ps=conn.prepareStatement(sql); ps.setString(1,id); ps.setString(2, name); ps.setString(3, sex); ps.setInt(4,Integer.parseInt(number));
一年多之前 回复
qq_34489366
qq_34489366   2016.03.31 22:17

ID是不是表示列,标识列不能添加

suwu150
suwu150 不是,如果我在values的参数中传3个值ID,NAME,SEX,则可以正常插入,加上NUMBER后就提示说insert into语句错误
一年多之前 回复
qq_25355903
qq_25355903   2016.03.31 22:33

在值的两边加上引号试试

suwu150
suwu150 ps.setString(1, "name"); ps.setString(2, "sex"); ps.setString(3,"number");这样还是提示insert into错误,加单引号eclipse直接提示红波浪线线错误
一年多之前 回复
Ruali
Ruali   2016.03.31 22:55

Microsoft][ODBC Microsoft Access Driver 提示信息是数据库连接问题,代码没有问题,你看看你的数据库Driver 包和配置文件路径对不对

suwu150
suwu150 会不会是NUMBER字段的属性有问题
一年多之前 回复
suwu150
suwu150 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn= DriverManager.getConnection("jdbc:odbc:DDEmployer"); Statement stat=conn.createStatement();这些都合适着呢吧
一年多之前 回复
wenxuechaozhe
wenxuechaozhe   2016.04.01 10:00

你看看你的字符类型设计的是什么,NUMBER,是否和你传递的正确

suwu150
suwu150 已解决,字段冲突了,谢谢啊
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!