-1

运行时没有错误,但我的 event_ID 是 1,2,3,4,5,6 但控制台显示

更新 crossEvent SET event_Seat = '10' WHERE event_ID =0

由于 event_ID 不同,我的 event_Seat 为 20 并没有更新为 10

    public TicketBooking(int eventID){
        this.eventID = eventID;
    }
    /**
     * This method initializes jButtonSubmit
     * 
     * @return javax.swing.JButton
     */
    private JButton getJButtonSubmit() {
        if (jButtonSubmit == null) {
            jButtonSubmit = new JButton();
            jButtonSubmit.setBounds(new Rectangle(517, 317, 79, 22));
            jButtonSubmit.setText("Submit");
            jButtonSubmit
                    .addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                            {
                                submitRegisteration(e);
                            }
                        }
                    });
        }
        return jButtonSubmit;
    }

    public void submitRegisteration(ActionEvent e) {
        String firstName = getJTextFieldFirstName().getText();
        String lastName = getJTextFieldLastName().getText();
        String Contact = getJTextFieldContact().getText();
        String Nric = getJTextFieldNRIC().getText();
        String event = jTextArea1.getText().toString();         

        if (firstName.equals("") || lastName.equals("")) {
            JOptionPane.showMessageDialog(null, "Please enter all text field");
        }

        else {
            bookingEventUser user = new bookingEventUser(firstName, lastName, Contact, Nric, event , eventID);
            if (user.createUser() == true)
                TicketAvailability();

            JOptionPane.showMessageDialog(null,
                    "User record created successfully!");
        }   
    }       

    public void TicketAvailability(){
        String  newseats = jComboBox1.getSelectedItem().toString();
        int seats = Integer.parseInt(newseats);
        DBController db = new DBController();
        db.setUp("IT Innovation Project: Database");
        ResultSet rs = null;
        String dbQuery = "SELECT event_Seat FROM crossEvent WHERE event_ID = "+eventID+"  ";

        rs = db.readRequest(dbQuery);
        int seatAvailable=0;
        try{
            while(rs.next()){
                seatAvailable = Integer.parseInt(rs.getString("event_Seat"));//rs.getString is retrieving data from database and making it to String
            }
            rs.close();
        }catch(Exception e1){

            }
            int resultSeat = seatAvailable - seats ;

            Event update = new Event(resultSeat);
            update.updateSeat();
            }       

    /**
     * This method initializes jTextArea    
     *  
     * @return javax.swing.JTextArea    
     */
    private JTextArea getJTextArea() {
        if (jTextArea == null) {
            jTextArea = new JTextArea();
            jTextArea.setBounds(new Rectangle(67, 289, 84, 16));
            jTextArea.setText(Integer.toString(eventID));
            jTextArea.setVisible(false);
        }
        return jTextArea;
    }
    /**
     * This method initializes jTextArea1   
     *  
     * @return javax.swing.JTextArea    
     */
    private JTextArea getJTextArea1() {
        if (jTextArea1 == null) {
            jTextArea1 = new JTextArea();
            jTextArea1.setBounds(new Rectangle(195, 205, 127, 26));
            jTextArea1.setEditable(false);              
        }
        return jTextArea1;
    }
    public void SetEventTitle(){
        db.setUp("IT Innovation Project: Database");
        String sql = "Select event_Title from crossEvent WHERE event_ID ="+ eventID +"";
            ResultSet rs = null;
        rs = db.readRequest(sql);
        try{
                while(rs.next()){
                    jTextArea1.setText(rs.getString("event_Title"));

                }
                rs.close();
    }catch(Exception e){
        System.out.println(e);

    }   
    }       
    public static void main(String args[]) {
        TicketBooking myWindow = new TicketBooking(eventID);
        myWindow.getJFrame().setVisible(true);
    }    
}

public class Event {        

    private int resultSeat;
    private int eventID;

    public Event(int resultSeat) {
        this.resultSeat = resultSeat;

    }
    public boolean updateSeat(){
        boolean success = false;
        DBController db = new DBController();
        db.setUp("IT Innovation Project: Database");
        String sql = "UPDATE crossEvent SET event_Seat = '" + resultSeat + "' WHERE event_ID ="+ eventID+ "";
        System.out.println(sql);
        if (db.updateRequest(sql) == 1)
            success = true;
        db.terminate();
        return success;         
    }    
}
4

2 回答 2

0

您从未为 eventID 分配任何值。在 Java 中,int 的默认值为 0。

于 2013-01-30T10:28:30.870 回答
0

貌似eventIDEvent的字段隐藏了外部类中的同名字段

public class Event {        

    private int resultSeat;
    private int eventID;  <-- remove this line
于 2013-01-30T10:29:30.637 回答