Netbeans Ucanaccess错误-意外令牌
这不断给我带来以下错误: 严重:null net.ucanaccess.jdbc.UcanaccessSQLException:意外标记:2 net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:109)” 如果我直接将查询复制并粘贴到access中,它会完美地执行。Netbeans Ucanaccess错误-意外令牌,netbeans,ucanaccess,Netbeans,Ucanaccess,这不断给我带来以下错误: 严重:null net.ucanaccess.jdbc.UcanaccessSQLException:意外标记:2 net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:109)” 如果我直接将查询复制并粘贴到access中,它会完美地执行。 我正在使用相同的方法插入数据库中的另一个表中,效果非常好,但是所有这些字段都是文本字段。我不太确定这是否有区别。我能够使用以下代码在UCa
我正在使用相同的方法插入数据库中的另一个表中,效果非常好,但是所有这些字段都是文本字段。我不太确定这是否有区别。我能够使用以下代码在UCanAccess 3.0.0下重新创建您的问题:
sql=
“插入临时(高尔夫球手、球场ID、日期、第一、第二、第三)”+
“数值(‘测试’,‘蓝谷CC’,#2011年1月1日#,4,3,5)”;
UCanAccess似乎被列名2nd
弄糊涂了。当我将列名括在方括号中时,我成功地执行了该语句:
sql=
“插入Temp(高尔夫球手、球场ID、日期播放、[1]、[2]、[3])”+
“数值(‘测试’,‘蓝谷CC’,#2011年1月1日#,4,3,5)”;
请格式化您的代码。是的,具体的顺序被编制者误解了。即使我认为使用方括号,如Gord所建议的,对于“特殊名称”(例如名称以数字开头)始终是一种很好的做法,我将在下一版本中修复此错误。谢谢
//golfer and CourseName are strings initialised earlier
String query = "INSERT INTO Temp (GolferID,CourseID,DatePlayed,1st,2nd,3rd,4th,5th,6th,7th,8th,9th,10th,11th,"
+ "12th,13th,14th,15th,16th,17th,18th)VALUES('"
+ golfer + "','" + CourseName + "',#1/1/2011#";
for(int j = 0; j <=17; j++)
{
query = query + "," + Scores[j];
}
query = query + ")";
System.out.println(query);
//INSERT INTO Temp(GolferID,CourseID,DatePlayed,1st,2nd,3rd,4th,5th,6th,7th,8th,9th,10th,11th,12th,13th,14th,15th,16th,17th,18th)VALUES('test','Blue Valley CC',#1/1/2011#,4,3,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)*/
\\this is what the string eventually looks like.
DBConnect db = new DBConnect();
db.InsertGame(query);
connection = DriverManager.getConnection("jdbc:ucanaccess://Golf.accdb");
statement = connection.createStatement();//declared earlier
statement.execute(query);