2014-01-14 96 views
0

我在某个时间点工作,但改变了路径以及其他一些字段,现在我似乎不能再次更新它。这里是代码:在Access中添加一条新记录

public class DbUpdate{ 
    ResultSet rs; 
    Statement st; 

    public void DbUpdate(){ 
     Connect(); 
    } 
    public void Connect(){ 
     try{ 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      Connection con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\User\\ugt\\Desktop\\ResourcePlanningTool_DB.accdb"); 
      st = con.createStatement(); 

      st.executeUpdate("INSERT INTO AssignmentDetails (Name) VALUES('Bob Joll')");   

     } 
     catch(Exception e){ 
      System.out.println(e); 
     } 
    } 
     public static void main(String[] args){ 
      DbUpdate x = new DbUpdate(); 
     } 
} 

目前项目运行没有错误,但它似乎并没有实际更新表。路径名称也是正确的。

+0

您是否发现异常?你的文件在'C:\ ResourcePlanningTool_DB.accdb'? –

+0

更新 - 对不起,粘贴时部分路径被切断。 – Hughes

回答

1

public void DbUpdate()不完全是一个构造函数,并没有被调用。我删除了void,并在executeUpdate之后添加了一个con.commit()并且它工作正常。

编辑:提交似乎并不需要。

 int retVal = st.executeUpdate("INSERT INTO AssignmentDetails (Name) VALUES('Bob Joll')");    
     System.out.println("Inserted: " + retVal);    
     //con.commit(); 
     //con.close(); 
+0

它运行并打印1,但信息仍未保存在数据库中。有没有我应该使用的保存命令? – Hughes

+0

它似乎只保存如果我使用rs = st.executeQuery(“SELECT Name FROM AssignmentDetails”);在创建新条目之后。 – Hughes

+0

@Crash它也没有为我第一次工作,所以我添加了提交行。之后它每次都有效。我也关闭了重新开放访问,访问有时会感到困惑。我还保留了con.close行没有评论,这是我的答案错字。 – xecaps12

相关问题