0

Javaプログラムで次のコードを書きました。

public int insertRecord()
       {

connection=PersistentieController.getInstance().getConnection();

int resultaat = 0;

String sql ="INSERT INTO TestDb (Nr Dossier, Année) VALUES (?,?)";

          try 
          {
             pstatement = initStatement(connection, sql);
             pstatement.setString(1, "9999");            
             pstatement.setInt(2, 2012);

             resultaat = pstatement.executeUpdate(); 
             pstatement.close();

          } //einde try
          catch ( SQLException sqlException ){
              sqlException.printStackTrace();

          }  

          return resultaat;

       } //einde insert()

構文エラーが表示されます。予約語を使用していないことを確認しました。何か案は?どうも。

4

4 に答える 4

0

列名をエスケープしました (などのスペースを使用Nr Dossier) 。

MySQLを使用している場合はバックティック、

INSERT INTO TestDb (`Nr Dossier`, `Année`) VALUES (?,?)

SQLServerMS Accessを使用している場合は括弧、

INSERT INTO TestDb ([Nr Dossier], [Année]) VALUES (?,?)
于 2012-09-25T09:10:05.573 に答える
0

このコード行では、 String sql ="INSERT INTO TestDb (Nr Dossier, Année) VALUES (?,?)"; Nr Dossier無効な列名である列名について言及しました。

于 2012-09-25T09:10:56.160 に答える
0

あなたのフィールド「Nr Dossier」にスペースがあるため、それをお勧めします。

使用しているSQLタイプについては言及していませんが、[]または`マークでこれを修正できることがよくあります。

于 2012-09-25T09:10:57.043 に答える
0

一重引用符内の文字列値を使用します:

String sql ="INSERT INTO TestDb ('Nr Dossier', 'Année') VALUES (?,?)";
于 2012-09-25T09:13:45.687 に答える