count += rs.getInt(3);
output += rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\n";
第一句是干吗用的?
文本型的用getString()
output += rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\n";
第一句是干吗用的?
文本型的用getString()
解决方案 »
- java中的移位
- 谁有深圳市天创软件的面试题啊?
- DirectoryDialog得到文件路径怎么用
- //关于类中传递实例的问题,想不明白,为什么会这样.
- 一个java面试题,求帮助
- jbuilder能不能把applet转换成application?
- 哪里有java/jdk的chm格式的帮助文件? 百分奉送
- 麻烦帮我看一下这个简单的多线程怎么改错?
- SQL Server 2000 Driver for JDBC + JDBC3.0可以吗
- 请问可以使用java画矢量图么?
- Frame窗体初始显示时设为最大化,怎样解决界面跳动的问题
- 急!高分救助:如何让窗口里的控件随着窗口的缩放也跟着缩放!万分感谢!
对(3)不能get两次。
output += rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\n";
改成
output += rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\n";
count += rs.getInt(3);
试试。
public static void main(String[] args) throws Exception {
//更新数据库的名字,便可以建立对SQLServer的联接
String url = "jdbc:odbc:bookshopdatabase";
Connection conn;
String output = new String();
int count = 0;
//建立连接类
try{
//告诉程序使用jdbc与odbc桥创建数据库联接
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("JDBC-ODBC的驱动程序注册成功");
}catch(Exception e){
System.out.println("找不到JDBC-ODBC的驱动程序");
}
try{
//使用DriverManager类的getConnection()方法建立联接,第一个字符参数定义用户名,
//第二个字符参数定义密码
conn = DriverManager.getConnection(url, "sa", "1982101");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from book");
while(rs.next()){
//数据库表book的第三个字段是书的价格,count是取得每一本书的价格总和
count += rs.getInt(3);
output += rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\n";
}
System.out.println(count);
System.out.println(output);
}catch(Exception e){
e.printStackTrace();
}
}
}以上代码能通过编译,运行是发生了异常:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java
5702)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356 at NorthwindSQLServerODBCDemo.main(NorthwindSQLServerODBCDemo.java:26) 但是如果我把while循环体中的语句"output+=rs.getString(1)+"\t"+..."不要就可以正常运行!
所以我觉得问题就发生在这个循环体里面的两条语句有冲突,请个位高手帮我解答一下,数据库的表book里的字段都是文本形,查过书,可以用ResultSet.getInt();来获得!