今天通过JDBC连SQL SERVER时需要知道表中总共列的数目,开始的时候是通过

state = dbcon.createStatement();
ResultSet rSet = state.executeQuery("SELECT count(*) FROM
TEST_SQL");
rSet.last();
int number = ResultSet.getRow()+1;

来实现的,但是出现了错误:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for
JDBC]Unsupported method: ResultSet.last

经网上搜寻发现只要在state初始化时加上参数

ResultSet.TYPE_SOROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE

或者

ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY

就可以实现了。可是却发现实现的效率实在是太低,后来又打算用下面的方法去实现

ResultSet rSet = state.executeQuery("SELECT count(*) FROM
TEST_SQL");
number = rSet.getInt(1);

可是发现出现错误:

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for
JDBC]Invalid operation for the current cursor position.

原因是返回的ResultSet对象的游标还在数据集的最上方,需要加一句:rs.next()!

这样就解决了!

这样也就求得了表中数据的条目,^________^