根据JComboBox中选定项目的数据库显示记录

时间:2014-04-02 11:00:12

标签: java mysql database jcombobox

当用户在JCombobox中选择一个项目时,我在显示数据库中的记录时遇到问题。 jcombobox中的项目是我的数据库中的ID号。我成功(希望如此!)将所有id放在jcombobox中,第一项显示其中的所有相应数据但是当我更改项目(ID#)时,它的相应数据不会改变。什么都没发生。显示的记录仍然是来自所选第一个项目(ID)的数据。另外我如何让jcombobox在执行时选择任何项目(当应用程序运行时)?这是我目前的代码:

        Class.forName(driverName); 
    Connection con = DriverManager.getConnection(url, userName, password);
    String sql = "SELECT Emp_ID FROM employee ORDER BY Emp_ID";
    PreparedStatement ps = con.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();

    while(rs.next()) {
        empID = rs.getString("Emp_ID");

        // Add the data to the combocox
        // cmbEmpID is the jcombobox
        cmbEmpID.addItem(empID);

    }

    String id = cmbEmpID.getSelectedItem().toString();

    String sql2 = " SELECT * FROM employee WHERE Emp_ID = " + id;

    ps = con.prepareStatement(sql2);
    rs = ps.executeQuery();

    while(rs.next()) {
        empID = rs.getString("Emp_ID");
        empName = rs.getString("Emp_Name");
        empRate = rs.getInt("Emp_Rate");

        txtName.setText(empName);
        txtRate.setText(String.valueOf(empRate));
    }
}

2 个答案:

答案 0 :(得分:0)

  

如何让jcombobox在执行时选择任何项目(当时   应用程序正在运行)?

 comboxname.setSelectedIndex(-1);

默认选择索引为0,因此它选择第一项。 如果您不希望任何项目默认选择set selected index = -1

答案 1 :(得分:0)

我的想法,它的价值

对于以下行:

String sql2 = " SELECT * FROM employee WHERE Emp_ID = " + id;

如果变量id表示SQL的多字符字段中的字符串,则需要用单引号括起来

行应该读

String sql2 = " SELECT * FROM employee WHERE Emp_ID = " + "'" + id + "'";