Search code examples
javaeclipsesqlitejdatechooser

how to update date by jdatechooser in java eclipse


when i try to update date by jdatechooser date cannot be saved in database, in database date doesn't show only show date format like i update 02/08/2014 in database date saved by MM/dd/yyyy? i am using sqlite database and eclipse juno

            try{
                String t10= comboBoxGen.getSelectedItem().toString();
                String JD= dateChooser.getDateFormatString();

                String t1= textFieldID.getText();
                String t2= textFieldFN.getText();
                String t3= textFieldLN.getText();
                String t4= textFieldCN.getText();
                String t5= textFieldAge.getText();
                String t6= textFieldDep.getText();
                String t7= textFieldMob.getText();
                String t8= textFieldSal.getText();
                String BD= dateChooser1.getDateFormatString();
            //  String t9= textFieldBD.getText();
            //  String t10= textFieldGen.getText();
                String t11= textFieldAdd.getText();
                String t12= textFieldPos.getText();
            //  String t13= textFieldJD.getText();

                if(t1.length()>4 || t1.length()==0  || t2.length()==0 || t3.length()==0 || t4.length()==0 || t5.length()==0 || t6.length()==0 || t7.length()==0 || t8.length()==0 || BD.length()==0 || t10.length()==0 || t11.length()==0 || t12.length()==0 || JD.length()==0 ){
                    JOptionPane.showMessageDialog(null, "Please fill the fields or correct filled","Error", JOptionPane.ERROR_MESSAGE);
                }
                else{
                    String query3="Update Teachers set TeacherID='"+textFieldID.getText()+"', FirstName='"+textFieldFN.getText()+"', LastName='"+textFieldLN.getText()+"', CNICNO='"+textFieldCN.getText()+"', Age='"+textFieldAge.getText()+"', Salary='"+textFieldSal.getText()+"', MobileNo='"+textFieldMob.getText()+"', Gender='"+t10+"', Department='"+textFieldDep.getText()+"', Position='"+textFieldPos.getText()+"', Address='"+textFieldAdd.getText()+"', JoinDate='"+JD+"', BirthDate='"+dateChooser1.getDateFormatString()+"'  where TeacherID='"+textFieldID.getText()+"' ";      
                    PreparedStatement pst= connection.prepareStatement(query3);

                int action = JOptionPane.showConfirmDialog(null, "Do you want Update this Data?","Update Confirmation",JOptionPane.YES_NO_OPTION);
                if (action==0){
                pst.execute();
                }
                JOptionPane.showMessageDialog(null, "Data Update");

                pst.close();

                }
            }catch(SQLException e){
                e.printStackTrace();
            }
        }
    });
    btnUpdateData.setBounds(399, 443, 105, 23);
    contentPane.add(btnUpdateData);

Solution

  • You need to call JDateChooser.getDate() to get the entered date. Of course, this returns a java.util.Date, so you'll need to take some additional steps to get the date into string form if that's what you really want.

    Here's one way to do it:

    java.util.Date dt = dateChooser1.getDate();
    String BD = "" +
        (dt.getMonth() + 1) +
        "/" +
        dt.getDate() +
        "/" +
        (1900+  dt.getYear();
    

    Here's a prettier way:

    String BD = (new java.text.SimpleDateFormat("MM/dd/yyyy"))
        .format(dateChooser1.getDate());
    

    Take your pick...