标题:用SWT 做的登陆框.....登陆验证时出现的问题
只看楼主
yumingde45
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-10-22
结帖率:100%
 问题点数:0 回复次数:3 
用SWT 做的登陆框.....登陆验证时出现的问题
新手刚学java(主要是SWT界面);遇到个问题,求大虾门帮我解决.
程序代码:
try {
                    con = DriverManager.getConnection(url);
                    Statement stat = con.createStatement();
                    String sql = "select 读者编号 ,读者密码  from Reader";
                    ResultSet rs = stat.executeQuery(sql);
                    while (rs.next())
                    {
                        if(text.getText().toString().equals(rs.getString("读者编号"))&&
                                text_1.getText().toString().equals(rs.getString("读者密码")))
                        {           
                                shell_1.setVisible(false);
                                new MyInformation();

                        }
                       
                        else  JOptionPane.showMessageDialog(null, "请输入正确的密码!!!");
                           
                    }
                   
                    con.close();
                } catch (SQLException e1) {
                   
                    e1.printStackTrace();
                }                
用这段代码后,,会弹出  请输入正确的密码!!! 的提示窗口,而提示窗口需要点击12次确定 才会关闭,
这个问题怎么解决?(我希望的是弹出一个提示窗口,点击确定提示窗口就关闭)
搜索更多相关主题的帖子: sql 读者 
2012-10-30 16:54
shellingford
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
注 册:2010-8-9
得分:0 
这是逻辑问题
while(rs.next()) 这个循环中会遍历数据
当你的数据库中有12条记录时,他会循环12次

if(text.getText().toString().equals(rs.getString("读者编号"))&&
                                text_1.getText().toString().equals(rs.getString("读者密码")))

当读者编号和读者密码都正确时,说明登录正确。其中有一个不正确时就是错误的吗?
例如有2条记录
读者编号1  密码A
读者编号2  密码B
登录信息输入2  B
遍历第一条数据时,读者编号1和输入的编号2不相等,此时登录信息就是错误的吗?

想通了你就知道怎么改了
2012-10-30 21:08
yumingde45
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-10-22
得分:0 
回复 2楼 shellingford
嗯嗯,谢谢楼上指导!
我当时把登陆框做出来后,连接好数据库后,我尝试登陆,弹出那个提示框后我一般点几次,发现总是关不了,我以为是语句有问题,后来仔细想了会:我设了12个用户名和密码,肯定要比较验证12次,于是我试着点12下提示框,果然关掉了,所以还是循环有问题,于是我就想找个函数,功能是在遍厉到最后一组数据时在做出判断,不过没找到,不知道这样想对不对?还往楼上帮我想出解决方法...谢谢
2012-10-30 21:54
yumingde45
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-10-22
得分:0 
呵呵  我太2了 其实只要把那个弹出提示框的语句放到循环外就行了....哎,还是谢谢2楼大虾的指点!!
程序代码:
                    if(isequal_1==1)
                    {
                        if(isequal_2==1)  {shell_1.setVisible(false);new MyInformation();}
                        else  JOptionPane.showMessageDialog(null, "请输入正确的密码!!!");
                    }
                    else  JOptionPane.showMessageDialog(null, "请输入正确的用户名!!!");
2012-10-31 12:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-385158-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.162338 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved