其中 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
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
请教请教啊!!!
所以抛出空指针异常
然后再运行该程序
另外在调用rs.next()之前
先用rs.hasNext()判断一下
没有值你next什么
有那个表吗??
最后再加一个catch(Exception e)
{
}
你id是String类型吗???
我想一般是getInt(id)
id char
name char也手工添加了记录刚才我把 System.out.println(rs.getString(name)+" "+rs.getString(id));
改成 System.out.println(rs.getString(1)+" "+rs.getString(2));
就能查询出结果.我想不通这是为什么??
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" 为什么交换一下查询的位子就不行呢??
字段是不是要加双引号啊
System.out.println(rs.getString("name")+" "+rs.getString("id"));
把 System.out.println(rs.getString(name)+" "+rs.getString(id));
改成 System.out.println(rs.getString("name")+" "+rs.getString("id"));
还有,怎么不能插入这么操作啊??谢谢!!
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
即然能用rs.getString(1),rs.getString(2)
那就说明肯定是你的字段名出了错了,呵呵,又是太粗心的问题哦!
改成
System.out.println(rs.getString("name")+" "+rs.getString("id"));别忘了双引号