当前位置: 技术问答>java相关
jsp 数据库查询问题。100分!!解答出来,送的分可以加,决不失言!
来源: 互联网 发布时间:2015-08-25
本文导语: >在以上代码中是一个身份验证,db2中有一张表users,包含了列username 和>password,并且 >插入了数据,但是上面的代码老是无法select 出来,总是执行if (RowCount==0) { out.print("你的用户名和密...
>在以上代码中是一个身份验证,db2中有一张表users,包含了列username 和>password,并且
>插入了数据,但是上面的代码老是无法select 出来,总是执行if (RowCount==0)
{ out.print("你的用户名和密码不对,请从新登陆"); }
>不转到我要到的网页(/wzgl/index.html)谁能帮我看看。高分相送!再线等候
>
qq:58350780
|
RowCount在执行Last()之前总是0的。你可以用if(rs.next())
另外你动态查询的方法不好。
最好用:
String query = "SELECT * FROM users where username=?and password=?";
Statement stmt = conn.createStatement();
stmt.setString(1,name);
stmt.setString(2,pwd);
try {
RS = stmt.executeQuery(query);
...........
另外你动态查询的方法不好。
最好用:
String query = "SELECT * FROM users where username=?and password=?";
Statement stmt = conn.createStatement();
stmt.setString(1,name);
stmt.setString(2,pwd);
try {
RS = stmt.executeQuery(query);
...........
|
你要用的是:
int RowCount = RS.getRowCount();
吧?呵呵。
int RowCount = RS.getRow();
的到的是当前的位置。当然是0。
int RowCount = RS.getRowCount();
吧?呵呵。
int RowCount = RS.getRow();
的到的是当前的位置。当然是0。
|
我建议在getRow()前,先将rs.last()
如果这样还不行的话,那就是你插入的数据有问题,可能存在空字符啦或者其它什么的
其实你程序也不用这样啦,只要rs.next()为true,不就通过了嘛,还用得着弄这么复杂,啊?!
如果这样还不行的话,那就是你插入的数据有问题,可能存在空字符啦或者其它什么的
其实你程序也不用这样啦,只要rs.next()为true,不就通过了嘛,还用得着弄这么复杂,啊?!
|
try {
RS = stmt.executeQuery(query);
if(RS.next())
RowCount=1;
}
catch(SQLException ex )
{
out.print("aq.executeQuery:" + ex.getMessage());
}
也就是说,如果取到结果集,就表示用户身份正确,否则不正确。
RS = stmt.executeQuery(query);
if(RS.next())
RowCount=1;
}
catch(SQLException ex )
{
out.print("aq.executeQuery:" + ex.getMessage());
}
也就是说,如果取到结果集,就表示用户身份正确,否则不正确。