2013-08-19 42 views
0

我在java IDE NetBeans中遇到了Sqlite數據庫的問題。SQLITE數據庫使用java操作錯誤(IDE:Netbeans)

我在我的數據庫中有4個表格,其中3個表格可以正常工作,但最後一個表格不工作!假設我想在JTable和數據庫中插入我的數據,它將顯示JTable中的值,但有時會插入數據,有時它不會將值插入數據庫!

下面是在按鈕上執行的操作,通過它將數據插入到jTable和數據庫中!

private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) { 
    PreparedStatement pst = null; 
    Connection conn = null; 
    try { 
     String sql = "insert into month (No,Description,Sale,Expense,Total) 
         values (?,?,?,?,?)"; 
     pst = conn.prepareStatement(sql); 
     pst.setString(1, txt_srM.getText()); 
     pst.setString(2, txt_dateM.getText()); 
     pst.setString(3, txt_tsaleM.getText()); 
     pst.setString(4, txt_texpM.getText()); 
     pst.setString(5, txt_subtM.getText()); 
     pst.execute(); 
     JOptionPane.showMessageDialog(null, "Saved!"); 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
    } 
} 
+0

當它失敗時,異常消息會說什麼? – Reimeus

+0

它不顯示任何消息!有時它會將數據插入到jTable和Database中,有時它只會將數據插入到jTable中,但不會插入到數據庫中! –

回答

0

您應該在第一條語句中連接數據庫。即

con = (YourDB/urDBconnectingClassName) 
    try { 
    String sql = "insert into month (No,Description,Sale,Expense,Total) 
        values (?,?,?,?,?)"; 
    pst = conn.prepareStatement(sql); 
    pst.setString(1, txt_srM.getText()); 
    pst.setString(2, txt_dateM.getText()); 
    pst.setString(3, txt_tsaleM.getText()); 
    pst.setString(4, txt_texpM.getText()); 
    pst.setString(5, txt_subtM.getText()); 
    pst.execute(); 
    JOptionPane.showMessageDialog(null, "Saved!"); 
} catch (Exception e) { 
    JOptionPane.showMessageDialog(null, e); 
} 

,如果你是這樣.. 那麼你必須關閉在方法結束你的數據庫連接,即

}catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
    }finally{ 
    try{ 
     rs.close(); //where rs = resultstatement 
     pst.close(); 
    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
    } 
}  

如果妳不密切的聯繫,它是在另一種方法連接..你可能會遇到DATABASE Lock錯誤!錯誤..

希望這會幫助你!

+0

謝謝親愛的..它解決了這個問題。 :) –