[英]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 (?,?)
如果您使用的是SQLServer和MS 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.