SQL插入语法错误

时间:2012-09-25 09:08:36

标签: sql ms-access syntax

我在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()

我收到语法错误。 我检查过我不使用保留字。 有任何想法吗? THX。

4 个答案:

答案 0 :(得分:0)

你已经转义了列名(包含空格,例如Nr Dossier )。

如果您使用的是 MySQL

,请

反击

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

括号如果您使用 SQLServer MS Access

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

答案 1 :(得分:0)

在这行代码中,String sql =“INSERT INTO TestDb(Nr Dossier,Année)VALUES(?,?)”;您提到的列名Nr Dossier是无效的列名。

答案 2 :(得分:0)

我建议它,因为你的字段'Nr Dossier'中有空格。

你没有提到你正在使用哪种SQL类型,但是[]或`标记通常可以解决这个问题。

答案 3 :(得分:0)

在单引号中使用字符串值:

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