-1

我已经制作了一个基于员工管理系统的项目,点击保存按钮字段的值加入日期(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);}

}

4

2 回答 2

1

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

通常,所有工具都公开了一种以有序方式获取数据的方法(例如通过order by 子句

于 2013-04-30T03:39:00.020 回答
0

对于开始对 ACE/Jet (Access) 数据库进行参数化查询的人来说,一个常见的绊脚石是参数必须按照它们在 SQL 语句中出现的完全相同的顺序添加到准备好的语句中。这对于 ACE/Jet OLEDB 来说当然是正确的,所以如果对于 ACE/Jet ODBC(您正在使用的)也是如此,我一点也不感到惊讶。

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

于 2013-04-30T12:40:13.173 回答