我的插入记录的代码为什么老报sql错误?

Sephiroth52 2004-10-12 07:12:39
代码如下,一运行就报 INSERT INTO 语法错误,到底哪里出了问题了?

import java.sql.*;
import java.util.*;

public class sqltest
{
String sql = "insert into table2(name,number)values(?,?)";//表table2只有name和number 2个字段,一个文本,一个int
public void test()
{

try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cnn = DriverManager.getConnection("jdbc:odbc:board","","");
PreparedStatement pp = cnn.prepareStatement(sql);
pp.setString(1,"I am the First!!");
pp.setInt(2,2);
pp.executeUpdate();
System.out.println ("OK.");
}
catch(Exception e){e.printStackTrace();}

}

public static void main(String[] args)
{
sqltest tt = new sqltest();
tt.test();
}
}
...全文
88 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
red-fly 2004-10-14
values(?,?)
第一个?两边加上''吧
就是
values('?',?)

因为这是一个字符串(对数据库说)
回复
yeshucheng 2004-10-14
String sql = "insert into table2(name,number)values(?,?)";
这个换成StringBuffer 试试看
回复
zlsunnan 2004-10-14
System.out.println (sql);
将sql语句打印出来看看吧
回复
bluesky35 2004-10-14
String sql = "insert into table2(name,number) values(?,?)";
values前加空格,再试试.
回复
tutor666 2004-10-13
用varchar字段试试就知道了
回复
Sephiroth52 2004-10-12
我在csdn全文检索里翻老半天,还没找到类似的问题.
请问有人能解答一下吗?
回复
Sephiroth52 2004-10-12
异常如下:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语
句的语法错误。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3104)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedState
ment.java:214)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(JdbcOdbcPrepare
dStatement.java:136)
at sqltest.test(sqltest.java:16)
at sqltest.main(sqltest.java:26)
Press any key to continue...

我的name字段是 备注 ,是不是有问题?
回复
tutor666 2004-10-12
是字符串溢出吧,看看name字段的长度
回复
zhyl1979 2004-10-12
你具体看看是报的什么异常。
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告