晚上好。
我正在做一个基本练习,将数据插入Access数据库表,代码中存在语法错误,我正在努力查明。
希望能得到一些关于Syntax问题所在的帮助。
错误如下所示 java.sql.SQLException:[Microsoft] [ODBC Microsoft Access Driver]查询值和目标字段的数量不同。
public void addData(String ID, String name, String address, String type) throws SQLException
{
int rowsadded;
Statement statement = conn.createStatement();
String queryString = "INSERT INTO Artists(ID, Name, Address, Type) VALUES (" + ID + ", '" + name + "', '" + address + ", " + type + "')";
System.out.println(queryString);
System.out.println(ID + "(ID) added to the database");
rowsadded = statement.executeUpdate(queryString);
System.out.println("Rows updated = " + rowsadded);
}
方法调用如下:
Insertingdata example;
try
{
example = new Insertingdata();
example.addData("15", "Bob Dylan", "Los Angeles", "Folk");
}
catch(SQLException se)
{
se.printStackTrace();
}
catch(ClassNotFoundException ce)
{
ce.printStackTrace();
}
答案 0 :(得分:4)
您在查询中错过了几个单引号,因此地址和类型被读取为单个值。将queryString行替换为:
String queryString = "INSERT INTO Artists(ID, Name, Address, Type) VALUES (" + ID + ", '" + name + "', '" + address + "', '" + type + "')";
这应解决问题。