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之后就完成了正常的插入功能,谢谢各位的提示
2 年多之前 回复
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)
2 年多之前 回复
qq_20039385
qq_20039385 ?号是占位符,序号从0开始,改成:ps.setString(0,id); ps.setString(1, name); ps.setString(2, sex); ps.setInt(3,Integer.parseInt(number));
2 年多之前 回复
suwu150
suwu150 我是用的是PreparedStatement,是不是values传递的参数只能是3个??
2 年多之前 回复
suwu150
suwu150 上面是我的完整语句
2 年多之前 回复
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));
2 年多之前 回复
qq_34489366
qq_34489366   2016.03.31 22:17

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

suwu150
suwu150 不是,如果我在values的参数中传3个值ID,NAME,SEX,则可以正常插入,加上NUMBER后就提示说insert into语句错误
2 年多之前 回复
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直接提示红波浪线线错误
2 年多之前 回复
Ruali
Ruali   2016.03.31 22:55

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

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

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

suwu150
suwu150 已解决,字段冲突了,谢谢啊
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
mdb数据库,一直提示INSERT INTO 语句语法错误
mdb数据库,一直提示INSERT INTO 语句语法错误 INSERT INTO 挂账(Rpt_Date,Text,ZMoney,PayMoney,Ymoney,Czy,Bz,Time,门店,帐户名称) VALUES( '2011-09-20','00000120110920001592','1073','0','1073','杜俏燕','1','2011-09-20 20:2
运用INSERT INTO语句向数据库中插入数据失败。
include(conn/conn.php); if($_POST[submit]){ $code = $_POST['code']; $note = $_POST['note']; $routeway = $_POST['routeway']; $operator = $_POST['operator']; if($code!= "" || $note != "" || $route
数据库学习 - insert into(插入数据)
向表中添加数据 Insert into 简单语法形式: Insert into 表名[(列名[,列名]...)] values(值 [,值],...);   Values 后面的值的排列要与into子句后面的列名排列一致; 若表名后面的所有列名省略,则values后的值的排列要与该表中存储的列名排列一致; “[]”表示其中的内容可省略。   示例: 1 向学生表中添加数据 I
“Insert into 语句的语法错误”的解决方法
“Insert into 语句的语法错误”的解决方法 前段时间用vb.net+access做练习发现了个问题.我定义了一个非常简单的select查询在sql server企业管理器中没问题,但在.net IDE中调试就通不过,提示 "使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法".后来发现是数据库中表的字段名有问题,baidu一下找
hibernate通过反射,动态生成insert语句原理 并向数据库添加数据
hibernate通过反射,动态生成insert语句原理 并向数据库添加数据
sql,insert语句出错
Insert 语句无返回值,不可resultsetrs=stmt.executeQuery(sql); 应该Stmt.executeUpdate(sql);
数据库错误:Insert error 1064
该错误一般是sql语句语法出现了问题。但是我有一条语句有时候没有问题,有时候就会出问题(偶尔)。很奇怪:
数据库之SQL(INSERT,INSERT SELECT,INSERT INTO语句)
一、SQL SERVER 中如何在数据表里插入数据?INSERT语句,代码及效果如下:但INSERT语句容易出现错误,什么错误呢?不能将值NULL插入列,即不能插入非空列,必须插入数值,这个看数据表中的NULL设置。二、如何复制数据表?依据以下操作先找到想要复制数据表的脚本编辑窗口选择以下代码选择复制,然后新建查询,粘贴,并把原数据表的名称进行更改,点击执行,即可完成复制。此代码只复制了数据表的字...
SQLite Insert语句
SQLite的INSERT INTO语句用于向数据库的某个表中添加新的数据行。 语法    INSERT INTO 语句有两种基本语法,如下所示: INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);    在这里,co
insert语句
用于Oracle中关键字的insert语句用于Oracle中关键字的insert语句用于Oracle中关键字的insert语句