繁体   English   中英

SQL插入语法错误

[英]SQL Insert Syntax error

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

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

您已转义了列名( 使用空格,例如Nr Dossier )。

如果您使用的是MySQL ,请反选

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

如果您使用的是SQLServerMS Access ,请放在方括号中,

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

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

我建议使用它,因为您的“ Nr Dossier”字段中有空格。

您没有提到要使用哪种SQL类型,但是[]或`标记通常可以解决此问题。

使用单引号内的字符串值:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM