2016-11-19 4 views
-1

У меня возникла проблема с jdatechooser, в то время как я использовал поиск данных между столбцами через jdatechooser. Проблема заключается в том, что я просматриваю данные, показывает правильные данные, но также показывает данных, которые я не хочу. следующее изображение моей ошибки.JDatechooser не работает должным образом при поиске между столбцами

Error

wrong-output

вы можете увидеть, что я хочу, чтобы искать данные в период с 1 ноября по 7 ноября, но это показывает последние две сделки также. Ниже мой код

private void okActionPerformed(java.awt.event.ActionEvent evt) {         
    // TODO add your handling code here: 
    try 
    { 
     String sql="select * from Bill_Ledger where Date >=(?) and Date <=(?)"; 
     pst=conn.prepareStatement(sql); 
     pst.setString(1,((JTextField)fromdate.getDateEditor().getUiComponent()).getText()); 
     pst.setString(2,((JTextField)todate.getDateEditor().getUiComponent()).getText()); 
     rs=pst.executeQuery(); 


     medic_table.setModel(DbUtils.resultSetToTableModel(rs)); 


    } 
    catch(Exception e) 
    { 
     JOptionPane.showMessageDialog(null,e); 
    } 
    finally 
    { 
     try 
     { 
      pst.close(); 
     } 
     catch(Exception e) 
     { 
      JOptionPane.showMessageDialog(null,e); 
     } 
    } 
}  

Пожалуйста, помогите мне.

+0

вы с помощью '' JDateChooser' из библиотеки JCalendar'? –

+0

yes..actually я не импортировал пакет библиотеки в свой код. Я просто перетаскивал – user3768938

ответ

0

Что бы я сделал, если бы я вас сначала распечатать на консоли, что строка даты вы размещаете в SQL, как это:

System.out.println("From date: "+pst.setString(1,((JTextField)fromdate.getDateEditor().getUiComponent()).getText())); 

System.out.println("To date: "+pst.setString(2,((JTextField)todate.getDateEditor().getUiComponent()).getText()); 

и позже, я бы попытаться выполнить данное SQL с помощью вручную использовать внешний инструмент (например, workbench mysql или простой CLI) и проверить, получаю ли я желаемые результаты.

select * from Bill_Ledger where Date >=fromDate and Date <=toDate 

Моя лучшая ставка прямо сейчас - это то, что строка даты отформатирована плохо (в терминах базы данных). Это немного сложно найти, потому что mysql не будет жаловаться на плохой формат даты.

Правильный формат для запросов должен быть как 'yyyy-MM-dd'

Смежные вопросы