2015-07-10 31 views
0
private void checkKeyPressed(java.awt.event.KeyEvent evt) {         
    try{ 
     String ch ="select * from check where name like ?%"; 
     PreparedStatement pst=conn.prepareStatement(ch); 
     pst.setString(1, check.getText()); 
     ResultSet rs=pst.executeQuery(); 
     checker.setModel(DbUtils.resultSetToTableModel(rs)); 

    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
    } 
} 

上面是代碼即時通訊使用,並即時得到一個:sqlite的錯誤(丟失的數據庫),同時嘗試更新的JTable

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "check": syntax error) 

我有一個名爲支票SQLite表,和IM試圖創造在我的jframe中的搜索引擎,所以當我在textfield中輸入文本時,jtable會自動過濾。任何想法爲什麼會出現這個錯誤。

回答

2

你必須改變這一部分,如果你需要傳遞%,你必須用一套方法和檢查通過它在sqlite的變化這是一個保留關鍵字check

String ch ="select * from check where name like ?%"; 
     PreparedStatement pst=conn.prepareStatement(ch); 
     pst.setString(1, check.getText()); 

String ch ="select * from `check` where name like ?"; 
     PreparedStatement pst=conn.prepareStatement(ch); 
     pst.setString(1, check.getText()+"%"); 
+0

不幸的是仍然得到相同的錯誤。 –

+0

CHECK是sqlite中的關鍵字 –

+0

好吧現在嘗試,我修改了答案 –

相關問題