2013-04-30 49 views
-1

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

 // 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);} 

}

回答

1

不要紧,在什么样的顺序存储数据。数据库系统以他们认为最有效的方式存储数据。

一般来说所有工具公开的方式(通过order byclause说)

0

是人们的共同绊脚石得到有序的方式将数据开始使用针对ACE /射流(访问)数据库是参数化查询必须将参数添加到准备好的语句中,它们与SQL语句中出现的顺序完全相同。 ACE/Jet OLEDB确实如此,所以如果ACE/Jet ODBC(您正在使用)也是如此,我一点也不会感到惊讶。

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

+0

我改变了这些陈述的顺序,但根本不工作 – Make 2013-05-06 05:24:20