开发者

problem with saving the data

my code is working properly it saving the data properly but when i am adding two more field i.e date and birthdate it giving the error i.e syntex error in insert into statement. i am using MS ACCESS for DB. in my DB i have use data type nomber for this two fields开发者_如何学Python(i.e date and update) my code is:

private void saveREGISTRATION1(java.awt.event.ActionEvent evt) {

int len,len1,len2;

    int regno= Integer.parseInt(cbregn.getSelectedItem().toString());
    if(cbregn.getSelectedItem().toString().equals("")){
    JOptionPane.showMessageDialog(null," SELECT THE REGISTRATION NO ");
    return;
    }


      int date=Integer.parseInt(tdate.getText());
      if(tdate.getText().equals(""))
      JOptionPane.showMessageDialog(null," ENTER THE DATE ");

//// String date=tdate.getText(); // if(date.equals("")) // JOptionPane.showMessageDialog(null," ENTER THE DATE ");

    String nm= cbnm.getSelectedItem().toString();
    if(nm.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE NAME ");
    return;
    }


    String place=tfplace.getText();
    if(place.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE NATIVE PLACE ");
    return;
    }



    String kul=tfkul.getText();
    if(kul.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE NAME OF KUL ");
    return;
    }

    String gotra=tfgotra.getText();
    if(gotra.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE GOTRA NAME ");
    return;
    }

    String kswami=tfswami.getText();
    if(kswami.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE KULSWAMI NAME ");
    return;
    }

    String raddr=taraddr.getText();
    if(raddr.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE RESIDENSIAL ADDRESS ");
    return;
    }

    int pincode=Integer.parseInt(tfpcd.getText());
    len1 = tfpcd.getText().length();
    if(len1!=7) {
    JOptionPane.showMessageDialog(null,"Enter The 7 Digit Pin Code","Error",JOptionPane.ERROR_MESSAGE);
    return;
    }

    int stdcd=Integer.parseInt(tfstdcode.getText());
    if(tfstdcode.getText().equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE STD CODE ");
    return;
    }


    int tele=Integer.parseInt(tftele.getText());
    len2 = tftele.getText().length();
    if(len2!=7){
    JOptionPane.showMessageDialog(null,"Enter The 7 Digit Telephone No","Error",JOptionPane.ERROR_MESSAGE);
    return;
    }


    int mno=(int) Long.parseLong(tfmno.getText());
    len = tfmno.getText().length();
    if(len!=10) {
    JOptionPane.showMessageDialog(null,"Enter The 10 Digit Mobile No","Error",JOptionPane.ERROR_MESSAGE);
    return;
    }


    String email=tfemail.getText();
    if(email.equals(""))
    JOptionPane.showMessageDialog(null," ENTER THE EMAIL");

    if(email.equals("")) {
        tfemail.setText("-");

    } else // check if it is a valid email-id
    {
    int ind = email.indexOf("@");
        if (ind != -1) { } else {
            JOptionPane.showMessageDialog(null,"Invalid Email Id","Error",JOptionPane.ERROR_MESSAGE);
            tfemail.setText("");
            tfemail.requestFocus();
            return;
        }
    }
    String website=tfweb.getText();
    if(website.equals(""))
    JOptionPane.showMessageDialog(null," ENTER THE WEBSITE ");

    if(website.equals("")) {
        tfweb.setText("-");
    }
    else // check if it is a valid email-id
    {
    int ind = website.indexOf("www");
    if (ind != -1) { } else {
    JOptionPane.showMessageDialog(null,"Invalid Website","Error",JOptionPane.ERROR_MESSAGE);
    tfweb.setText("");
    tfweb.requestFocus();
    return;
   }
}

    String education=tfedu.getText();
    if(education.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE EDUCATION DETAILS");
    return;
   }

    String branch=tfbrch.getText();
    if(branch.equals("")){
    JOptionPane.showMessageDialog(null," ENTER THE BRANCH NAME ");
    return;
   }


  int brthdt=Integer.parseInt(tfbdt.getText());
  if(tfbdt.getText().equals(""))

// String brthdt=tfbdt.getText(); // if(brthdt.equals("")) JOptionPane.showMessageDialog(null," ENTER THE BIRTH DATE");

    String bloodgroup=(String)cbbldgrp.getSelectedItem();
    if(bloodgroup.equals("")){
    JOptionPane.showMessageDialog(null," SELECT THE BLOODGROUP");
    return;
   }

    try
    {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con=DriverManager.getConnection("jdbc:odbc:wanisamajDB");
        Statement stmt=con.createStatement();
       //String qry= "INSERT INTO Registration1(RegistrationNo,SeniorPerson,NativePlace,Kul,Gotra,KulSwami,ResidensialAddress,PinCode,STDcode,TelephoneNo,MobileNo,Email,Website,Education,Branch,BloodGroup) VALUES('"+regno+"','"+nm+"','"+place+"','"+kul+"','"+gotra+"','"+kswami+"','"+raddr+"','"+pincode+"','"+stdcd+"','"+tele+"','"+mno+"','"+email+"','"+website+"','"+education+"','"+branch+"','"+bloodgroup+"')";
        System.out.println("qry");
        String qry= "INSERT INTO Registration1(RegistrationNo,SeniorPerson,NativePlace,Kul,Gotra,KulSwami,ResidensialAddress,PinCode,STDcode,TelephoneNo,MobileNo,Email,Website,Education,Branch,BloodGroup,Date,BirthDate) VALUES('"+regno+"','"+nm+"','"+place+"','"+kul+"','"+gotra+"','"+kswami+"','"+raddr+"','"+pincode+"','"+stdcd+"','"+tele+"','"+mno+"','"+email+"','"+website+"','"+education+"','"+branch+"','"+bloodgroup+"','"+date+"','"+brthdt+"')";
        stmt.executeUpdate(qry);
        JOptionPane.showMessageDialog(null,"RECORD IS SAVED SUCCESSFULLY ");
        con.close();

    }
    catch(SQLException eM) {
        System.out.println(" "+eM);
        JOptionPane.showMessageDialog(null,"RECORD IS NOT SAVED");
    } 
    catch(Exception et)
    {
        System.out.println("error:"+et.getMessage());
    }

}


Your Java code must produce an INSERT statement which Access' database engine can accept.

In Access, this statement should work assuming both fields are date data type.

INSERT INTO tblFoo([Date],BirthDate) Values (#2011/04/09#, #1960/05/10#)

Notice I enclosed the name of the first field in square brackets. I did that to let the database engine know Date is the name of a field in the table, not to be confused with the Date() function.

Access SQL uses # as the delimiter for date literal values.

However, you indicated your Date and BirthDate fields are numeric rather than date data type. If true, that seems like a design error to me. But either way, your existing INSERT statement attempts to insert text values into the Date and BirthDate fields. Look closely at this simplified version of your qry variable assignment.

String qry= "INSERT INTO Registration1([Date],BirthDate) VALUES('"+date+"','"+brthdt+"')";

If Date and BirthDate are date datatype, change the delimiter from single quote to hash character.

String qry= "INSERT INTO Registration1([Date],BirthDate) VALUES(#"+date+"#,#"+brthdt+"#)";

If Date and BirthDate actually are numeric, change them to date data type.

Fundamentally, you're attempting to use Java with an Access database when you apparently have little understanding of how Access works. As a result, your Access problem is even harder for you to identify because it's obscured in all that verbose Java stuff.

I suspect you would have more success by creating your SQL statements in an Access session. Once you have a SQL statement which the database engine can execute without error, re-create that SQL with your Java code.


What data type u took in database for inserting date and birthdayDate? as u said u used number data type for storing these data, change those to date data type.


Instead of surrounding your date strings with quotation marks use the pound/hash sign '#'

,'#+date+#','#+brthdt+#')"; 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜