各位大哥大姐,请大家帮帮我解决一下问题,谢谢!
以下是我的工程,运行后老是报[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误。是怎么回事?
package access;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class TestAccess {
static class Record {
public String name = null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String value = null;
}
int count = 1;
public static Record record = new Record();
public Connection dataBaseConnection() {
Connection conn = null;
try {
String strurl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=e:/aa/db1.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(strurl);
} catch (Exception e) {
System.out.println(e);
}
return conn;
}
public void writeDatabase(Record record) throws SQLException {
Connection conn = null;
conn = dataBaseConnection();
System.out.println("conn");
String strSql = "insert into ads(name,value) values (?,?)";
PreparedStatement psmt = conn.prepareStatement(strSql);
psmt.setString(1, record.getName());
psmt.setString(2, record.getValue());
psmt.executeUpdate();
System.out.println("count:" + count++);
}
public static void main(String args[]) throws SQLException {
TestAccess t = new TestAccess();
record.setName("nihao");
record.setValue("111");
t.writeDatabase(record);
}
}
这是运行后的结果http://www.iteye.com/problems/new#
[img]http://dl.iteye.com/upload/attachment/478790/57a37790-2c59-38f5-b9c1-2e62fc7157eb.jpg[/img]
还有就是用access的数据库版本和这个问题有关吗?下面是我创建的表,这样创建对吗?
[img]http://dl.iteye.com/upload/attachment/478804/bfa3fd7a-841d-3823-93db-6fb29d820695.jpg[/img]