如何基于带“ 0”的文本字段查询SQLite数据库?

问题描述 投票:0回答:1

我正在创建一个小型数据库,可以存储我的职位编号记录。我想以2个零(00)开始每个作业编号,然后再放置作业编号。像这样的“ 001-2019”。当我去查询数据库时,它不起作用。但是,如果我摆脱了零并摆脱了任何特殊字符,它就可以正常工作。如何使用零和特殊字符查询数据库?

        btnOpen.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                String jobNumber = txtJobNumber.getText();
                String sql = "SELECT Date FROM JOBCOSTS where Job_Number =" +jobNumber;
                try {
                    pst=conn.prepareStatement(sql);
                    rs = pst.executeQuery();
                    if(rs.next()) {
                    String date=rs.getString("Date");
                    txtJobCostDate.setText(date);

                    }
                }catch (Exception e) {
                    JOptionPane.showMessageDialog(null, e);

                }
            }
        });
java sqlite jtextfield
1个回答
0
投票

由于已经在使用parametarized query,因此请先尝试使用Prepared statements

String sql = "SELECT Date FROM JOBCOSTS where Job_Number = ?";
pst=conn.prepareStatement(sql);
pst.setString(1, jobNumber);

第二,您的jobNumber应该在字符串中,这样您的前导零将不会被截断。

btnOpen.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        String jobNumber = txtJobNumber.getText();
        String sql = "SELECT Date FROM JOBCOSTS where Job_Number ='" +jobNumber+"'";
        try {
            pst=conn.prepareStatement(sql);
            rs = pst.executeQuery();
            if(rs.next()) {
            String date=rs.getString("Date");
            txtJobCostDate.setText(date);

            }
        }catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);

        }
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.