存储在ms访问表中的值未按正确顺序存储

时间:2013-04-30 03:25:10

标签: java sql database ms-access-2007

我做了一个基于员工管理系统的点击保存按钮的项目字段的值加入日期(doj)和个人名称(p_name)没有按正确顺序存储,值显示为 - > (doj)显示(p_name)和(p_name)的信息,显示(doj)的信息。

     //   Save Personal Information of Employee Master



                  if(ae.getSource()==pi_save)
                 {
                    try
                    {
                            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                            Connection con=DriverManager.getConnection
                            ("jdbc:odbc:Driver={Microsoft Access Driver 
                             (*.mdb, *.accdb)};DBQ=C:\\Program
                             Files\\Java\\jdk1.7.0\\bin\\payroll.mdb;","","");

                            PreparedStatement psm=con.prepareStatement

                            ("insert into pinfo(eid,p_name,fname,doj,dob,desg,pre_add1,
                             pre_add2,pre_state,pre_pincode,pre_phno,per_add1,
                             per_add2,per_state,per_pincode,per_phno,mobno,sex,dept)
                             values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");

                            String psmd1=eid.getText();
                            String psmd3=name.getText();
                            String psmd2=doj.getText();

                            String psmd4=fname.getText();
                            String psmd5=dob.getText();
                            String psmd6=desg.getText();
                            String psmd7=pre_add1.getText();
                            String psmd8=pre_add2.getText();
                            String psmd9=pre_state.getText();
                            int psmd10=Integer.parseInt(pre_pincode.getText());
                            int psmd11=Integer.parseInt(pre_phno.getText());
                            String psmd12=per_add1.getText();
                            String psmd13=per_add2.getText();
                            String psmd14=per_state.getText();

                            int psmd15=Integer.parseInt(per_pincode.getText());
                            int psmd16=Integer.parseInt(per_phno.getText());
                            int psmd17=Integer.parseInt(mobno.getText());


                            String psmd18=jsex;
                            String psmd19=jdept;




                            psm.setString(1,psmd1);
                            psm.setString(3,psmd3);
                            psm.setString(2,psmd2);

                            psm.setString(4,psmd4);
                            psm.setString(5,psmd5);
                            psm.setString(6,psmd6);
                            psm.setString(7,psmd7);
                            psm.setString(8,psmd8);

                            psm.setString(9,psmd9);
                            psm.setInt(10,psmd10);
                            psm.setInt(11,psmd11);
                            psm.setString(12,psmd12);
                            psm.setString(13,psmd13);
                            psm.setString(14,psmd14);
                            psm.setInt(15,psmd15);
                            psm.setInt(16,psmd16);
                            psm.setInt(17,psmd17);
                            psm.setString(18,psmd18);
                            psm.setString(19,psmd19);

                            int a=psm.executeUpdate();


                            System.out.println(a+" Rows updated.......");

                             eid.setText("");
                             doj.setText("");
                             name.setText("");
                             fname.setText("");
                             dob.setText("");
                             desg.setText("");
                             pre_add1.setText("");
                             pre_add2.setText("");
                             pre_state.setText("");
                             pre_pincode.setText("");
                             pre_phno.setText("");
                             per_add1.setText("");
                             per_add2.setText("");
                             per_state.setText("");
                             per_pincode.setText("");
                             per_phno.setText("");
                             mobno.setText("");


                            status.setText("");


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

}

2 个答案:

答案 0 :(得分:1)

数据的存储顺序无关紧要。数据库系统以他们认为最有效的方式存储数据。

通常,所有工具都提供了一种以有序方式获取数据的方法(例如order by clause

答案 1 :(得分:0)

人们开始对ACE / Jet(Access)数据库进行参数化查询的常见障碍是,参数必须以与SQL语句中出现的完全相同的顺序添加到预准备语句中< / em>的。对于ACE / Jet OLEDB来说,情况确实如此,所以如果ACE / Jet ODBC(你正在使用它)也是如此,我也不会感到惊讶。

因此,更改发出psm.setString语句的顺序,使其与INSERT INTO语句中相应字段的显示顺序完全匹配。 ACE / Jet驱动程序忽略参数名称;它是将它们添加到重要的Parameters集合中的顺序。