我在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。
答案 0 :(得分:0)
你已经转义了列名(包含空格,例如Nr Dossier
)。
反击
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 (?,?)";