其中 info 是在 dbtest 中建的表。如果我把 String query="select * from info" 改成 String query="select * from dbtest.info"编译后就得到:
1
2
3
4
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'dbtest.info' 无效。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at dbtest.dbtest.main(dbtest.java:39)
9
10
请教请教啊!!!

解决方案 »

  1.   

    rs=stmt.executeQuery(query);这条语句执行以后返回结果为空
    所以抛出空指针异常
      

  2.   

    你尝试着手工在数据库表中增加一条记录
    然后再运行该程序
    另外在调用rs.next()之前
    先用rs.hasNext()判断一下
    没有值你next什么
      

  3.   

    getString,是不是类型不匹配?换成getObject试试
      

  4.   

    没有关闭数据库连接阿
    有那个表吗??
    最后再加一个catch(Exception e)
    {
    }
      

  5.   

    System.out.println(rs.getString(name)+"  "+rs.getString(id));
    你id是String类型吗???
    我想一般是getInt(id)
      

  6.   

    我的表是
    id  char  
    name  char也手工添加了记录刚才我把  System.out.println(rs.getString(name)+"  "+rs.getString(id));
    改成      System.out.println(rs.getString(1)+"  "+rs.getString(2)); 
    就能查询出结果.我想不通这是为什么??
      

  7.   

    还有一个问题就是,当我改成:System.out.println(rs.getString(2)+"  "+rs.getString(1));也是抛出
    1
    2
    3
    4
    java.lang.NullPointerException
    at java.util.Hashtable.get(Hashtable.java:329)
    at sun.jdbc.odbc.JdbcOdbcResultSet.findColumn(JdbcOdbcResultSet.java:1793)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:395)
    at dbtest.dbtest.main(dbtest.java:43)
    5
    6
    Exception in thread "main"  为什么交换一下查询的位子就不行呢??
      

  8.   

    System.out.println(rs.getString(name)+"  "+rs.getString(id));
    字段是不是要加双引号啊
    System.out.println(rs.getString("name")+"  "+rs.getString("id"));
      

  9.   

    你的getString参数不对啊,它只有两种参数一种是索引,另一种是关键字要加""把字段给引起来才对
    把  System.out.println(rs.getString(name)+"  "+rs.getString(id));
    改成      System.out.println(rs.getString("name")+"  "+rs.getString("id"));
      

  10.   

    谢谢“ szpqq(Gavin)”,是要加引号哪为什么我把查询对象的位置调换一下,就不可以了呢?
    还有,怎么不能插入这么操作啊??谢谢!!
      

  11.   

    也谢谢  leoliang(随缘)理解这个问题了,很感谢你们
      

  12.   

    把关键字位置改变,也不行,还是报错
    1
    2
    java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
    at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3862)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5561)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:338)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:395)
    at dbtest.dbtest.main(dbtest.java:49)
    3
    4
    5
    6
    9
    11
      

  13.   

    我想,肯定是你的字段里有空格!
    即然能用rs.getString(1),rs.getString(2)
    那就说明肯定是你的字段名出了错了,呵呵,又是太粗心的问题哦!
      

  14.   

    System.out.println(rs.getString(name)+"  "+rs.getString(id));
    改成
    System.out.println(rs.getString("name")+"  "+rs.getString("id"));别忘了双引号