2013-04-27 67 views
0

如果有重复,我很抱歉,但我仍尝试了所有方法仍然无法进行插入。Mysql&MSAccess:插入表中有一个递增的字段

我有只有两个字段(ID,姓名)的表 当我运行该SQL代码,它必须插入一个新的记录,并自动递增ID场 ,因为它是自动递增但遗憾的是不工作。 见记录和错误的:

MYSQL:

  1. PreparedStatement pr = con.prepareStatement("insert into names(name) values(?)"); pr.setString(2,"Azad");

    java.sql.SQLException中:参数索引超出范围(2>的参数数目,为1 )。

  2. insert into names(id,name) values(?,?)

    java.sql.SQLException中:否为参数指定的值1

MS访问:

  1. insert into names(name) values(?)

java.lang.ArrayIndexOutOfBoundsException:1

  1. insert into names(id,name) values (?,?)

值java.sql.SQLException:[微软] [ODBC Microsoft Access驱动程序] COUNT场不正确

这些错误的原因是什么?以及如何解决它?

感谢您的建议和解答。

回答

2

change pr.setString(2,“Azad”);到pr.setString(1,“Azad”);

第一个参数是关于?在准备好的语句中,不是表中的列索引。

java.sql.SQLException:没有为参数1指定值。这是由于您为查询指定了两个参数。但只有第二个参数指定了一个值。如果“ID”是一个自动递增列,那么你不需要传入一个值。如果不是那么

pr.setString(1,IDVALUE);

pr。的SetString(2, “阿扎德”);

+0

嗯,我没有想到这一点,感谢这是工作+1和接受。 – Azad 2013-04-27 21:33:05

相关问题