麻烦大家帮我看看下面这个代码,主要是数据库更新这一块出现了问题,我把这个放在一个按钮监听类里面,运行时会出现无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'的错误,不知道是什么原因
代码如下:
                          
    class CaluButtonHandler implements ActionListener
    {
            String a,b;
            private double x1,y1,x2,y2;//直线坐标
        
            PicPanel p;
            CaluButtonHandler(PicPanel p)
            {
             this.p = p;
    }
            
            public void actionPerformed(ActionEvent e)
    {
             a=tf1.getText();
                b=tf2.getText();
                if(a.equals("") || b.equals(""))
         {
                 JOptionPane.showMessageDialog(WeightTest.this,"请输入相关信息");
                 return;
             }
                try
                {
                 weight=Double.parseDouble(a);
                 height=Double.parseDouble(b);
             }
                catch(NumberFormatException nfe)
                {
                 System.out.println("只处理数字信息。");
                 return;
                }
            emi=weight/(height*height/100/100);
            tf.setText(String.valueOf(emi));
                 
        //  数据库更新
            String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=[Weight_BMI.mdb]";
            String command=null;
            ResultSet rs=null;
            Statement sm=null;
            String name1,name2,name3,name4;
            int num1=0;
            int num2=0;
            int num3=0;
            int num4=0;
            try
            {
         
                      
            Connection con=DriverManager.getConnection(url);
            //DatabaseMetaData dmd=con.getMetaData();//DMD为连接的相应情况 
            sm=con.createStatement();
            //String s=dmd.getDatabaseProductName();//获取数据库名称
            command="select normalweight,overweight,fatness1,fatness2 from Weight";
         rs=sm.executeQuery(command);
         System.out.println("ok1");
         while(rs.next())
         {
         name1=rs.getString("normalweight");
         num1=Integer.parseInt(name1);
         name2=rs.getString("overweight");
         num2=Integer.parseInt(name2);
         name3=rs.getString("fatness1");
         num3=Integer.parseInt(name3);
          name4=rs.getString("fatness2");
          num4=Integer.parseInt(name4);
         }
         System.out.print("ok2");
            if(emi>=18.5 && emi<=22.9)
            {
            
             command="updata Weight"+ "set"+ "normalweight"+"num1++";
             rs=sm.executeQuery(command);
             con.commit();//终止事务
             con.close();
            }
            else if(emi>22.9 && emi<=24.9)
            {
             //同上边差不多
            }
            else if(emi>24.9 && emi<=29.9)
            {
             //同上边差不多            }
            else if(emi>30)
            {
             //同上边差不多                }
            
                     
                     
        }
                      
            ret retTest=new ret();
            y1=retTest.rety1();
            y2=retTest.rety2();
            x1=115;
            x2=500;
            
            p.drawLine(x1,y1,x2,y2);
            
                }
    
         CaluButtonHandler chandler=new CaluButtonHandler(panel2);
         calubutton.addActionListener(chandler);
        
         //Acess数据库连接
         
         class databaseHandler implements ActionListener
         {
          public void actionPerformed(ActionEvent e)
          {
          String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=[Weight_BMI.mdb]";
          String command=null;
          ResultSet rs=null;
          Statement sm=null;
          String name1,name2,name3,name4;
          
          try
          {
          
        
           
          Connection con=DriverManager.getConnection(url);
          //DatabaseMetaData dmd=con.getMetaData();//DMD为连接的相应情况 
          sm=con.createStatement();
          //String s=dmd.getDatabaseProductName();//获取数据库名称
          command="select normalweight,overweight,fatness1,fatness2 from Weight";
          rs=sm.executeQuery(command);
          while(rs.next())
          {
          name1=rs.getString("normalweight");
          name2=rs.getString("overweight");
          name3=rs.getString("fatness1");
          name4=rs.getString("fatness2");
          jt.setText("normalweight: "+name1+'\n'+"overweight:       "+name2+'\n'
             +"fatness1:           "+name3+'\n'+"fatness2:           "+name4);
          
          }
              }
          catch(SQLException ex)
          {
          System.out.println("SQLException:");
          while(ex!=null)
          {
          System.out.println("Message:"+ex.getMessage());
          }
          ex=ex.getNextException();
          
          }
             }
         }
         
         databaseHandler dhandler=new databaseHandler();
         databasebutton.addActionListener(dhandler);

         mainFrame.addWindowListener(new WindowAdapter()
         {
             public void windowClosing(WindowEvent e){System.exit(0);}
          });
         
         mainFrame.setVisible(true);//一般放在最后面
    }            
public static void main(String[] args)
{
new WeightTest();
}
}