Я хочу выполнить поиск в базе данных, указав номер ваучера в качестве критериев поиска, но номер поручения является целым числом, поэтому я не могу сделать это со следующим кодом, пожалуйста, предложите для этого другой код.
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);
}
Преобразуйте значение 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 = ?";
У вас есть простая ошибка в коде ("где 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()));
txt_vouchno_p.getText()
может быть преобразовано вint
.