Как запросить базу данных SQLite на основе ввода в текстовое поле с "0"? - PullRequest
0 голосов
/ 22 октября 2019

Я создаю небольшую базу данных, в которой можно хранить записи о моих рабочих номерах. Я хочу начать каждый номер задания с 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);

                }
            }
        });

1 Ответ

0 голосов
/ 22 октября 2019

Сначала попробуйте использовать 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);

        }
    }
});
...