这是尝试从表中获取密码的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”就是这样 -
因此,如问题标题中所述,我收到错误 - java.sql.SQLException:[Microsoft] [ODBC SQL Server驱动程序]无效的描述符索引
注意:我已经知道我的结果集代码存在问题,但我无法弄明白。
任何人都可以指导我吗??? 感谢。
答案 0 :(得分:2)
您的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。
以Java编程语言中String的形式检索此ResultSet对象的当前行中指定列的值。 参数: columnIndex - 第一列是1,第二列是2,...