日期:2014-05-18  浏览次数:20771 次

向Access 添加记录失败(一个很诡异又郁闷的问题!)
Connection conn=db.getConnection(); 
Statement stmt=conn.creatStatement(); 
int a=0,b=0; 
a=stmt.executeUpdate("update test set userPwd='aaa' where userName='ddd'");  

///上而这句更新是可以的 

b=stmt.executeUpdate("insert into test values('abc','fgg')"); 
System.out.println("b=" + b); 

//上面这句执行后没有任何提示,b=1但Access 数据库里没有更新数据 
//但是如果加上下面的语句的话,添加记录成功!!@!我无语了 

ResultSet rs=stmt.executeQuery("seleect * from test"); //这里的表是数据库的任何一个都可以 

//下面的可要可不要 

//以上代码在.jsp下完全可以正常,但在application下和jsp + javaBean 下必须要以下代码

while(rs.next()) 

System.out.println(rs.getString(1) ); 

///////////////////// 
谁有遇到过类似的问题!说一下解决方法!谢谢了

------解决方案--------------------
更新也一样!需要
ResultSet rs =stmt.executeQuery("select * from category");
才能正常更新
------解决方案--------------------
b=stmt.executeUpdate("insert into test values('abc','fgg')");
System.out.println("b=" + b);

//上面这句执行后没有任何提示,b=1但Access 数据库里没有更新数据
//但是如果加上下面的语句的话,添加记录成功!!@!我无语了

ResultSet rs=stmt.executeQuery("seleect * from test"); //这里的表是数据库的任何一个都可以 

b=stmt.executeUpdate("insert into test values('abc','fgg')"); 这句话应该是将值插入到结果集stmt里边了!所以b=1!

ResultSet rs=stmt.executeQuery("seleect * from test"); 这句话是将结果集stmt更新到数据库!
------解决方案--------------------

可能是Access数据库与Oracle不同吧,你把同样的语句在Oracle里试试呀?

要不你把这句:
b=stmt.executeUpdate("insert into test values('abc','fgg')");
改成:
b=stmt.executeUpdate("insert into test(userName,userPwd) values('abc','fgg')");
再试试.



------解决方案--------------------
等高手。。。
------解决方案--------------------
你还没有明白这个数据保存的过程。因为你跟数据库操作的时候就要用到ResultSet这个结果集的
ResultSet rs=stmt.executeQuery("update test set userPwd='aaa' where userName='ddd'");
你把它改成这样的话,就可以用了。那个a= 和b=不需要。。