sqlite updateData - оператор не работает - PullRequest
1 голос
/ 14 июля 2020

Я использую SQlite в качестве базы данных и кодирую в Java функции newID();, updateTable(); и updateData(); приведены ниже

public void newID(){
                String sql = "select count(*) ID from CashierDetails";
                try{
                    pst= conn.prepareStatement(sql);
                    rs = pst.executeQuery();
                    if(rs.next()){
                    int id = ((Number) rs.getObject(1)).intValue() + 1;
                    jTextField1.setText("" + id);
                    pst.close();
                    rs.close();
                    }
                }catch(Exception e){
                    JOptionPane.showMessageDialog(null, e);
                }
            }
        
public void updateTable()
            {
                String sql = "select * from CashierDetails";
                
                try{
                    
                    pst = conn.prepareStatement(sql);
                    rs = pst.executeQuery();
                    jTable5.setModel(DbUtils.resultSetToTableModel(rs));
                    pst.close();
                    rs.close();
                    
                }
                catch (Exception e)
                {
                    JOptionPane.showMessageDialog(null,e);
                }
                
                
            }
            
public void updateData ()
            {
             
                String sql = " update CashierDetails set " 
                        + " CashierName = '"+jTextField2.getText()+"',"
                        + " SecretQ = '"+jComboBox1.getSelectedItem()+"',"
                        + " Answer = '"+jTextField18.getText()+"',"
                        + " MobileNo = '"+jTextField3.getText()+"',"
                        + " Address = '"+jTextField5.getText()+"',"
                        + " Email = '"+jTextField4.getText()+"',"
                        + " Password = '"+jPasswordField1.getText()+"',"
                        + " ConfirmPass = '"+jPasswordField2.getText()+"'"
                        + " where CashierID = "+jTextField1.getText();
                
                String sql2 = "update CashierAccount set "
                        + " Username = '"+jTextField2.getText()+"',"
                        + " SecretQ = '"+jComboBox1.getSelectedItem()+"',"
                        + " Password = '"+jPasswordField1.getText()+"',"
                        + " ConfirmPassword = '"+jPasswordField2.getText()+"',"
                        + " Answer = '"+jTextField18.getText()+"'"
                        + " where CashierID = "+jTextField1.getText();
                
                
                try
                {
                    pst = conn.prepareStatement(sql);
                    pst.execute();
                    pst.close();
                    rs.close();
                    pst = conn.prepareStatement (sql2);
                    pst.execute ();
                    JOptionPane.showMessageDialog(null, "Cashier Details have been updated");
                    pst.close();
                    rs.close();
                    updateTable();
                    newID();
                    
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                    JOptionPane.showMessageDialog(null, e);
                }
                
        
                        
                        
                
            }

функция не выдает ошибок и не t генерирует какие-либо исключения, вместо этого отображается диалоговое окно с сообщением «Сведения о кассе обновлены», но в таблице SQLite CashierDetails сведения не обновляются ни в таблице CashierAccount, а ниже - таблица SqLite Таблица CashierDetails Таблица CashierAccount

Теперь, если бы я должен был заполнить таблицу через SQLite studio (т.е. создать строку и ввести данные из SQLite Studio), то указанная строка c может быть обновлена ​​с помощью updateData(); функция

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

Видимо, проблема с закрытием подготовленного оператора. Приведенный ниже код работает нормально и обновляет список по мере необходимости

public void updateData ()
    {
     
        String sql = " update CashierDetails set " 
                + " CashierName = '"+jTextField2.getText()+"',"
                + " SecretQ = '"+jComboBox1.getSelectedItem()+"',"
                + " Answer = '"+jTextField18.getText()+"',"
                + " MobileNo = '"+jTextField3.getText()+"',"
                + " Address = '"+jTextField5.getText()+"',"
                + " Email = '"+jTextField4.getText()+"',"
                + " Password = '"+jPasswordField1.getText()+"',"
                + " ConfirmPass = '"+jPasswordField2.getText()+"'"
                + " where CashierID = "+jTextField1.getText();
        
        String sql2 = "update CashierAccount set "
                + " Username = '"+jTextField2.getText()+"',"
                + " SecretQ = '"+jComboBox1.getSelectedItem()+"',"
                + " Password = '"+jPasswordField1.getText()+"',"
                + " ConfirmPassword = '"+jPasswordField2.getText()+"',"
                + " Answer = '"+jTextField18.getText()+"'"
                + " where CashierID = "+jTextField1.getText();
        
        
        try
        {
            pst = conn.prepareStatement(sql);
            pst.executeUpdate();
            pst.close();
            updateTable();
            pst = conn.prepareStatement (sql2);
            pst.executeUpdate();
            updateTable();
            JOptionPane.showMessageDialog(null, "Cashier Details have been updated");
            
            pst.close();
            rs.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, e);
        }
        

                
                
        
    }
0 голосов
/ 14 июля 2020

звоните pst.executeUpdate() вместо pst.execute()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...