0

如果有重复,我很抱歉,但我尝试了所有方法仍然无法插入。

我有一个只有两个字段(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 指定值

微软访问:

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

java.lang.ArrayIndexOutOfBoundsException:1

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

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]COUNT 字段不正确

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

感谢您的建议和回答。

4

1 回答 1

2

更改 pr.setString(2,"Azad"); 到 pr.setString(1,"Azad");

第一个参数与 ? 的位置有关。在准备好的语句中,而不是表中的列索引。

java.sql.SQLException: No value specified for parameter 1. 这是因为您为查询指定了两个参数。但只为第二个参数指定了一个值。如果“ID”是一个自动递增的列,那么您不需要传入一个值。如果不是那么

pr.setString(1,IDVALUE);

pr.setString(2,"Azad");

于 2013-04-27T21:26:52.607 回答