表:xxxx(title:文本型,content:备注型,id:自增)
我无论是插入数据还是删除数据,都不起作用,真是邪了门了!
package test;
import  merge.util.*;
import java.sql.*;
public class Test { 
    public static void main(String [] args){
        try {
            Connection cnn=DBConnection.getConnection("D:\\temp\\asp_book_ac.mdb");
            PreparedStatement ps=cnn.prepareStatement("delete from xxxx");//            db.getPrepareStatement().setString(1,"afdsgfdsg");
            //ps.setString(1,"a");
            ps.execute();        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (Throwable ex) {
            ex.printStackTrace();
        }
    }
}怎么也看不出哪错了,程序也不抛出异常。

解决方案 »

  1.   

    to crazycy:
      没有错误,所以奇怪。异常已经捕捉到Throwable的级别了,任何异常应该都可以捕捉到的。to jianghaiqq8:
      你太专业了,连这个都知道
      

  2.   

    DBConnection这个类看看,可能这里捕获了异常而没有打印
      

  3.   

    DBConnection在其它地方也用过,更新,删除都好用,唯独在这个类里面测试却不好用啊。
    package merge.util;
    import java.sql.*;
    public class DBConnection {
    public static Connection getConnection(String path) throws Exception{
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
    Connection cnn=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+
    path);
    return cnn;
    }catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    throw e;
    }
    }
    }
      

  4.   

    就这些程序了,确实没有报任何异常,xxxx表没有自增字段的时候也是无法更新,插入.
      

  5.   

    ps.execute();这里错了,不该用execute(),execute()只是用来查询数据库,不适用于插入删除数据的
      

  6.   

    execute可以执行任何操作,没错。
      

  7.   

    Connection cnn  的声明  是不是应该放到 try 的外面?!
      

  8.   

    是不是没commit啊
    最后con.commit();试试
      

  9.   

    是没有权限,智能查询不能增加删除修改
    方法是将目录设置成完全共享,或者你用administrator进入系统进行程序编写
      

  10.   

    我本来就是管理员身份进入的啊。后来我重新建了一遍表,不知怎么就好用了,晕,肯定access的bug或者是ojdbc的bug