Поиск поля базы данных целочисленного типа через Java

1

Я хочу выполнить поиск в базе данных, указав номер ваучера в качестве критериев поиска, но номер поручения является целым числом, поэтому я не могу сделать это со следующим кодом, пожалуйста, предложите для этого другой код.

  try{
            String sql = "select item_type as 'Item Type', md_by as 'Made By', model as       'Model', selling_price as 'Selling Price', purchase_price as 'Purchase Price', purchase_date as 'Purchase Date', vouch_no as 'Voucher No.', vouch_date as 'Voucher Date', record_no as 'Record No.' from purchase" where vouch_no = ?;
            ps = con.prepareStatement(sql);
            ps.setString(1 , txt_vouchno_p.getText());
            rs = ps.executeQuery();
            Table_p.setModel(DbUtils.resultSetToTableModel(rs));


        }   
        catch(SQLException ex){

                JOptionPane.showMessageDialog(null, "Error: " + ex);

        }
        catch(Exception ex){
            JOptionPane.showMessageDialog(null, "Error: " + ex);
        }
Теги:
jdbc

2 ответа

3
Лучший ответ

Преобразуйте значение txt_vouchno_p.getText() в int с помощью Integer#parseInt и передайте его в PreparedStatement соответственно:

ps.setInt(1, Integer.parseInt(txt_vouchno_p.getText()));

Похоже на опечатку в вашем текущем коде, но для больших литералов String s не бойтесь o разделить его на несколько строк, компилятор достаточно умен, чтобы преобразовать его в одну большую String для вас. Итак, эта строка:

String sql = "select item_type as 'Item Type', md_by as 'Made By', model as       'Model', selling_price as 'Selling Price', purchase_price as 'Purchase Price', purchase_date as 'Purchase Date', vouch_no as 'Voucher No.', vouch_date as 'Voucher Date', record_no as 'Record No.' from purchase" where vouch_no = ?;

Следует переписать:

String sql = "select item_type as 'Item Type'"
    + ", md_by as 'Made By'"
    + ", model as 'Model'"
    + ", selling_price as 'Selling Price'"
    + ", purchase_price as 'Purchase Price'"
    + ", purchase_date as 'Purchase Date'"
    + ", vouch_no as 'Voucher No.'"
    + ", vouch_date as 'Voucher Date'"
    + ", record_no as 'Record No.'"
    + " from purchase"
    + " where vouch_no = ?";
  • 0
    Я пытался разобрать, но все же я получил ошибку. Я тоже пытался разобрать как поплавок, но не получилось.
  • 0
    @ user3248599 Пожалуйста, отредактируйте ваш вопрос и опубликуйте трассировку стека вашей ошибки. Также убедитесь, что содержимое txt_vouchno_p.getText() может быть преобразовано в int .
Показать ещё 1 комментарий
0

У вас есть простая ошибка в коде ("где vouch_no..." находится не внутри строки sql), это должно быть:

 String sql = "select item_type as 'Item Type', md_by as 'Made By', model as       'Model', selling_price as 'Selling Price', purchase_price as 'Purchase Price', purchase_date as 'Purchase Date', vouch_no as 'Voucher No.', vouch_date as 'Voucher Date', record_no as 'Record No.' from purchase where vouch_no = ?";

Вы можете установить такой параметр:

ps = con.prepareStatement(sql);
ps.setString(1 , Integer.parseInt(txt_vouchno_p.getText()));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню