0

重複がありましたら申し訳ありませんが、あらゆる方法を試しましたが挿入できません。

2 つのフィールド (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: [Microsoft][ODBC Microsoft Access Driver]COUNT フィールドが正しくありません

これらのエラーの理由は何ですか? そしてそれを解決する方法は?

提案と回答をありがとう。

4

1 に答える 1

2

pr.setString(2,"Azad"); を変更します。pr.setString(1,"Azad"); に

最初のパラメーターは、? の位置に関連しています。テーブル内の列インデックスではありません。

java.sql.SQLException: パラメータ 1 に値が指定されていません。これは、クエリに 2 つのパラメータを指定したことが原因です。ただし、2 番目のパラメーターには 1 つの値しか指定していません。「ID」が自動インクリメント列の場合、値を渡す必要はありません。そうでない場合

pr.setString(1,IDVALUE);

pr.setString(2,"アザド");

于 2013-04-27T21:26:52.607 に答える