2

这是试图从表中获取密码的jsp代码

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:dsn2");

String U=(String)session.getAttribute("uname");
String query="select pwd from img_pwd where uname='"+U+"'";

Statement s=con.createStatement();
ResultSet r= s.executeQuery(query);
String pas="";
 if(r.next())
        {
             pas=r.getString(2);
        }

con.close();

数据库中的“img_pwd”表是这样的——

  1. (uname,nvarchar(50)
  2. (密码,nvarchar(20))

因此,如问题标题中所述,我收到错误 - java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index

注意:我知道我的结果集代码有问题,但我无法弄清楚。

有人可以指导我吗???谢谢。

4

1 回答 1

3

您的 SQL 正在选择一个字段:

String query="select pwd from img_pwd where uname='"+U+"'";

但是这条线正在寻找字段#2(你只选择一个)。

pas=r.getString(2);

改为:

pas=r.getString(1);

作为参考,这里是关于 ResultSet 接口的 getString 方法的 Java 文档

检索此 ResultSet 对象的当前行中指定列的值,作为 Java 编程语言中的 String。参数:columnIndex - 第一列为 1,第二列为 2,...

于 2013-04-21T22:46:28.090 回答