思路:在一个登录的对话框中,我把登陆ID作为查询的条件,当输入用户名在数据库中不存在时,用wasNull方法判断rs是否为空,
为空则弹出错误对话框,可是运行起来,似乎输入错误的用户名也无法弹出错误对话框,哪里出了问题?如何解决?.........
sqlStr="select * from 运动员信息表 where 姓名 = '"+ID.getText()+"'";
ResultSet rs = st.executeQuery( sqlStr );
if(rs.wasNull()){
MessageBox box=new MessageBox(sShell,SWT.ICON_ERROR|SWT.OK);
box.setText("登录出错!");
box.setMessage("用户名或密码错误!");
box.open();
}
.......
为空则弹出错误对话框,可是运行起来,似乎输入错误的用户名也无法弹出错误对话框,哪里出了问题?如何解决?.........
sqlStr="select * from 运动员信息表 where 姓名 = '"+ID.getText()+"'";
ResultSet rs = st.executeQuery( sqlStr );
if(rs.wasNull()){
MessageBox box=new MessageBox(sShell,SWT.ICON_ERROR|SWT.OK);
box.setText("登录出错!");
box.setMessage("用户名或密码错误!");
box.open();
}
.......
楼主【zhuyutian】截止到2008-07-03 11:55:55的历史汇总数据(不包括此帖):
发帖的总数量:16 发帖的总分数:580
结贴的总数量:16 结贴的总分数:580
无满意结贴数:1 无满意结贴分:30
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:6.25 % 无满意结分率:5.17 %
敬礼!
String s1=new String();
String s2=null;s1不是null,s2是null....
String idinfo=rs.getString(id);
if(idinfo==null && idinfo==""){
.....
}
直接 rs.next() 就行,如果结果集为空它返回 false,如果至少一条查询结果它返回 true。
...
}很多方法光看名字感觉很像可以满足你的要求,但如果在不清楚的情况下乱用以后如果出现问题就很难找到错误所在。
...
}
...
}
正解,
楼主不要从方法名判断它的用途,要看API文档
wasNull:
报告最后一个读取的列是否具有值 SQL NULL。注意,必须首先对列调用一个获取方法来尝试读取其值,然后调用 wasNull 方法查看读取的值是否为 SQL NULL。
next():
将指针从当前位置下移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推