SQL语句少了 use databasename 这一句 所以找不到表abcd

解决方案 »

  1.   

    import java.net.URL;
    import java.sql.*;
    class Select
    {
    public static void main(String args[])
    {
    String l="jdbc:odbc:test";
    try{
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch(java.lang.ClassNotFoundException e)
    {
    System.err.print("ClassNotFoundException:");
    System.err.println(e.getMessage());
    }
    Connection con=DriverManager.getConnection(l,"sa","922828");
    Statement stmt=con.createStatement();
    stmt.executeUpdate("INSERT INTO abcd(abcd_a,abcd_b) VALUES('009','王涛')");
    con.close();
    }
    catch(SQLException ex)
    {
    while(ex!=null)
    {
    System.out.println("数据库异常被捕获了");
    System.out.println(ex.getSQLState());
    System.out.println(ex.getMessage());
    System.out.println(ex.getErrorCode());
    ex=ex.getNextException();
    }
    }
    }
    }
    以上是我的源代码,实际上是一本书上的
    use databasename应该加在哪里?databasename为"test"
      

  2.   

    你的ODBC(test)连接的SQL数据库中有“abcd”这个数据表吗?我想可能是这个原因,这段代码,在我这里运行没有问题啊。
      

  3.   

    stmt.executeUpdate("INSERT INTO abcd VALUES('009','王涛')");  这句应该为:stmt.executeUpdate("INSERT INTO abcd(id,name)VALUES('009','王涛')");其中,id与name对应你数据库中相应的列名.
      

  4.   

    是不是要写表的全名
    如带上数据库拥有者和数据库名
    INSERT INTO DBO.TEST.abcd VALUES('009','王涛')
    或者带上只数据库名
    INSERT INTO TEST.abcd VALUES('009','王涛')
      

  5.   

    stmt.executeUpdate("use test INSERT INTO abcd(abcd_a,abcd_b) VALUES('009','王涛')");
    这个情况我也遇到过