想要获得单一数据库值

时间:2013-01-21 05:18:52

标签: java sql database swing resultset

我有一个登录表单,如果登录成功。我想得到一个已记录的名称,这里看到我的代码:

 try {
             if(jTextField1.getText().equals(""))
        {
              JOptionPane.showMessageDialog(null, "Pleass Input Username");
        }
        else if(jPasswordField1.getText().equals(""))
        {
              JOptionPane.showMessageDialog(null, "Please Input Password");
        }
        else
        {
            rs = con.executeQuery("SELECT * FROM MsEmployee WHERE EmployeeID='"+jTextField1.getText()+"' And Password='"+jPasswordField1.getText()+"'");
            if (rs.next())
            {
             help.IDemployee = jTextField1.getText(); 
             JOptionPane.showMessageDialog(null, "Login Success! welcome "+ help.IDemployee);
             MainMenu mm = new MainMenu(true);
             mm.setVisible(true);
             this.dispose();
            }else
            {
            JOptionPane.showMessageDialog(null, "Username not found!!");
            }
        }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null,ex.getMessage());
        }

所以我想显示EmployeeName MSEmployee来自EmployeeID的{​​{1}}。 我想是这样的:

String qry;
qry = "Select EmployeeName From MsEmplyee WHERE EmployeeID = '" + jtextField1.gettext() + "'" ; 

但是当我编译时,它只打印上面的文本,而不是获取值。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

正如评论中所建议的那样,请检查名称MsEmplyee / MsEmployee是否正确。

这与您的问题无关,但我认为您的代码可能会有一个(可能的)改进。

而不是使用

if(jTextField1.getText().equals(""))

最好在使用equals()方法之前使用trim()方法。因此,如果用户在jTextField1中输入空格,则在这种情况下将绕过您的检查。因此最好使用trim()方法从字符串中删除所有第一个和最后一个空格字符。

if(jTextField1.getText().trim().equals(""))

密码字段也可以这样做。

答案 1 :(得分:0)

您没有读取结果集值。

// help.IDemployee = jTextField1.getText(); 
help.IDemployee = rs.getString(1);

列索引从第一列的1开始。不是从0

答案 2 :(得分:0)

你可以试试这个!

String EmployeeName = rs.getString(“数据库中的列标签(类似于EmployeeName)”);

的System.out.println(EmployeeName);