java - 无法解决 "java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index"错误

标签 java sql-server jsp jdbc

这是尝试从表中获取密码的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]无效描述符索引

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

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

最佳答案

您的 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 .

Retrieves the value of the designated column in the current row of this ResultSet object as a String in the Java programming language. Parameters: columnIndex - the first column is 1, the second is 2, ...

关于java - 无法解决 "java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136947/

相关文章:

java - 如何为 EditText 的提示应用动画?

sql-server - 查询从子查询中查找前 3 个

sql - 在 OPENXML sql 的情况下,将空 XML 节点的数据类型 nvarchar 转换为数字时出错

java - Liferay portlet 中的自定义 servlet/jsp

jsp - 如何安装JSTL?绝对uri : http://java. sun.com/jSTL/core 无法解析

java - Appengine 没有编译我的 .jspx 文件

java - 如何定义具有静态值的内部类并使其可以访问外部类对象

java - Selenium:如何将 id 或类与特定的 div 相关联?

java - 不要将文本显示与设置的文本连接起来,而是使用 android 资源?

sql-server - 如何删除日期时间值的时间部分(SQL Server)?