【问题标题】:unable to resolve "java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index" error无法解决“java.sql.SQLException:[Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index”错误
【发布时间】:2013-04-14 18:07:18
【问题描述】:

这是试图从表中获取密码的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 Driver]Invalid Descriptor Index

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

谁能指导我??? 谢谢。

【问题讨论】:

    标签: java sql-server jsp jdbc


    【解决方案1】:

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

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

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

    pas=r.getString(2);
    

    改为:

    pas=r.getString(1);
    

    供参考,这里是Java doc on the ResultSet interface's getString method

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

    【讨论】:

    • 谢谢它的工作 :) 不幸的是,我之前也尝试用 2 替换 1,但得到了空指针异常......不过,它工作......!!!
    猜你喜欢
    • 2017-12-13
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多