一尘不染

无法解决“ java.sql.SQLException:[Microsoft] [ODBC SQL Server驱动程序]无效的描述符索引”错误

jsp

这是尝试从表中获取密码的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. (pwd,nvarchar(20))

因此,如问题标题所述,我得到了错误-java.sql.SQLException :[Microsoft] [ODBC SQL
Server驱动程序]无效的描述符索引

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

谁能指导我???谢谢。


阅读 478

收藏
2020-06-08

共1个答案

一尘不染

您的SQL选择一个字段:

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

但是这一行正在寻找字段2(而您只选择一个)。

pas=r.getString(2);

将其更改为此:

pas=r.getString(1);

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

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

2020-06-08