net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc ::: 3.0.6参数标记不允许

时间:2016-09-04 20:32:13

标签: java mysql swing ms-access jdbc

我是ucanaccess的新手。我正在开发一个java swing应用程序,我使用MS Access 2016来存储我的DB。我正在尝试将值插入到我的表中。我正在使用sql的插入查询。一切似乎都是正确的,但后来我得到错误,说参数标记不被允许(我认为它指的是"?"我曾经将变量传递给我的查询)。

以下是数据库代码:

public static void updateDB(String NOBOOKS, java.util.Date DOI, java.util.Date DOR){
    try{   
        Connection on = DriverManager.getConnection("jdbc:ucanaccess://Database/UserDetails.accdb");
        Statement stmt = on.createStatement();
        String sql = "SELECT * FROM Member";
        System.out.println(Uid);
        ResultSet result = stmt.executeQuery(sql);
        System.out.println(DOR);
        while(result.next()){
            if(Uid.equals(result.getString("ID"))){  
                String N = NOBOOKS;
                Date I = new Date(DOI.getTime());
                Date R = new Date(DOR.getTime());
                String sqlUpdate = "INSERT INTO Member (Issues,DOI,DOR) VALUES (?,?,?)";
                PreparedStatement values = on.prepareStatement(sqlUpdate);
                System.out.println("The DOI is "+ DOI);
                System.out.println("The I is "+ I);
                System.out.println("The DOR is "+ DOR);
                System.out.println("The R is "+R);

                values.setString(1, N);
                values.setDate(2, I);
                values.setDate(3, R);
                stmt.executeUpdate(sqlUpdate);
            }
        }
    } catch (Exception se) {
        System.out.print(se);
    }   
}

这是我得到的输出。

2
Tue Sep 20 00:00:00 IST 2016
The DOI is Mon Sep 05 00:00:00 IST 2016
The I is 2016-09-05
The DOR is Tue Sep 20 00:00:00 IST 2016
The R is 2016-09-20
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 parameter marker not allowedBUILD SUCCESSFUL (total time: 25 seconds)

0 个答案:

没有答案