单击按钮时从SQLite数据库获取下一条记录

时间:2017-12-26 12:43:33

标签: java sql sqlite

我已经读过关于这个的说明,但似乎没有一个对我有用。我有一个SQLite数据库和Netbeans作为我的IDE,我有一个jframe,它在jtable中显示数据记录,记录按升序显示。单击记录会在jtextfields中显示它们。

当我点击按钮时,我想以升序移动到数据库中的下一条记录,但它似乎无法正常工作。我做错了什么?

try{
    String sql ="select * from Employees order by Name ASC";
    pst=conn.prepareStatement(sql);
    rs=pst.executeQuery();

        if(rs.next()){

                int i = rs.getInt("ID");
                String idi= Integer.toString(i);
                id.setText(idi);
                String a = rs.getString("Name");
                name.setText(a);
                String b = rs.getString("Contact");
                contact.setText(b);
                String c = rs.getString("Email");
                email.setText(c);
                String d = rs.getString("Residence");
                residence.setText(d);
                String e = rs.getString("Job_Type");
                comboJob.setSelectedItem(e);

  }
        else {
             rs.previous();
             }

    }
    catch(SQLException | HeadlessException ex)
    {
        JOptionPane.showMessageDialog(null, ex);
    }finally{
            try{
                rs.close();
                pst.close();
            }
            catch(Exception e){

            }
        }

1 个答案:

答案 0 :(得分:1)

你需要将数据库中的值存储在一个数组中,然后用你的(上一个,下一个)按钮迭代它,如

i=0;
while(rs.next()) {
          dataset["ID"][i]=Integer.toString(rs.getInt("ID"));
          dataset["Name"][i]=rs.getString("EName");
   i++
          } 

显示可以使用数据集数组的信息,如

id.setText(dataset["ID"][i]);
name.setText(dataset["EName"][i]);

未检查语法,但逻辑正确。