2016-11-19 67 views
-1

我面臨jdatechooser問題,而我用jdatechooser在列之間搜索數據..問題是當我搜索數據,它顯示正確的數據,但它也顯示了我不想要的數據。以下是我的錯誤消息圖片。JDatechooser無法正常工作在列之間搜索

Error

wrong-output

你可以看到,我想11月1日之間的搜索數據,以11月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

,您在'JCalendar'庫使用'JDateChooser'樣的? –

+0

是的..其實我沒有在我的代碼中導入庫包...我只是簡單地拖動和下降 – 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交給外部工具(比如mysql工作臺或者簡單的CLI),然後檢查是否得到了預期的結果。

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

現在我最好的選擇,是日期字符串在惡劣的方式被格式化(在數據庫術語)。這有點難以找到,因爲mysql不會抱怨糟糕的日期格式。

進行查詢

正確的格式應該是'yyyy-MM-dd'

相關問題