package medicinemanage;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
import java.sql.*;
 
public class MedicineSellInto extends JFrame implements ActionListener{
 DataBaseManager dbm=new DataBaseManager();
ResultSet rs1,rs2,rs3;                    }
 
 
       public void actionPerformed(ActionEvent e)
       {
                if(e.getSource()==AddBtn)
              {
              
               if(medicinetypenoTextField.getText().trim().equals(""))
                     {
                           JOptionPane.showMessageDialog(null,"药品类别号不能为空!");
                     }
                     else if(medicinenameTextField.getText().trim().equals(""))
                     {
                           JOptionPane.showMessageDialog(null,"药品名不能为空!");
                     }
                     else if(selldataTextField.getText().trim().equals(""))
                     {
                           JOptionPane.showMessageDialog(null,"销售日期不能为空!");
                     }
                     else if(sellcountTextField.getText().trim().equals(""))
                     {
                           JOptionPane.showMessageDialog(null,"销售数量不能为空!");
                     }
                     
                else
                     {
                           try              {
                               String strSql1;
                                  String strSql2;
                                  String strSQL1="insert into medicinesell(medicinetypeno,medicinename,selldata,sellcount) values('"+
                                  medicinetypenoTextField.getText().trim()+"','"+
                                  medicinenameTextField.getText().trim()+"','"+
                                  selldataTextField.getText().trim()+"',"+
                                  sellcountTextField.getText().trim()+")";
                                  String strSQL2="insert into medicineless(medicinetypeno,medicinename,less) values('"+
                                  medicinetypenoTextField.getText().trim()+"','"+
                                  medicinenameTextField.getText().trim()+"',0)";
                                  String strSQL3="delete from medicine where medicinetypeno='"+medicinetypenoTextField.getText().trim()+"'";
                                  String strSQL4="select * from medicine";
 
                                  
                                  strSql1="select sellcount from medicinesell where medicinetypeno='"+medicinetypenoTextField.getText().trim()+"'";
                                   strSql2="select medicinecount from medicine where medicinetypeno='"+medicinetypenoTextField.getText().trim()+"'";
                                         dbm.updateSql(strSQL1);
                                         rs1=dbm.getResult(strSql1);
                                         rs2=dbm.getResult(strSql2);
                                         int a,b;
                                         
                                         try
                                         { 
                                       a=rs1.getInt(strSql1);
                                       b=rs2.getInt(strSql2);
                   }
                                         catch(Exception ex)
                                         {
                                          System.out.println("error");
                                         }
                                         a=0;
                                         b=0;                                         
                                         if(a==b)                                         {
                                                
                                                dbm.updateSql(strSQL3);
                                                dbm.updateSql(strSQL2);
                                                                                                
                                             
                                                
                                         }
                                       else if(a>b)                                         {
                                               String strSQL6="update medicinesell set sellcount=b where medicinetypeno='"+
                                               medicinetypenoTextField.getText().trim()+"','"+
                                               medicinenameTextField.getText().trim()+"','"+
                                               selldataTextField.getText().trim()+"'";
                                                                                                                                  
                                                
                                                dbm.updateSql(strSQL6);
                                                dbm.updateSql(strSQL3);
                                                dbm.updateSql(strSQL2);
                                                                                         }                                 
                                         else                                  {             int c;
                                                c=b-a;
                                                String strSql4="update medicine set medicinecount=c where medicinetypeno='"+medicinetypenoTextField.getText().trim()+"'";
                                                dbm.updateSql(strSql4);
                                                                                                                                                      dbm.updateSql(strSQL2);
                                                                                         }
                                        dbm.closeConnection();
                                         JOptionPane.showMessageDialog(null,"药品销售信息输入失败!");
                                  dbm.closeConnection();
                           }
                              catch(Exception ex)
                             {
                                 System.out.println(ex.toString());
                             }
                     
                           }
              }
       }
}
上面一段程序执行后,会报错:java.lang.NullPointerException
我测试了下,感觉是这两句出了问题,即是a=rs1.getInt(strSql1);b=rs2.getInt(strSql2);  这是用来提取值的
请各位高手帮忙修改下,看有没有好的建议,先谢谢了!
                                       

解决方案 »

  1.   

    从结果集中取数据是 rs.getInt(int i) 或者是  rs.getInt(String rowname) 还真每看见过你那么取数据的
      

  2.   

    把错误信息贴出来
    另a=rs1.getInt(strSql1);
    能取到a的值吗?strSql1是一个sql语句,getInt(strSql1)取的是啥?
      

  3.   

    sorry,我刚刚贴错了,程序如下时:
    int a,b;
    a=rs1.getInt("sellcount");
    b=rs2.getInt("medicinecount");
    或者 rs.getInt(字段),也没有运行成功,会抛出一个null的值,可能和System.out.println(sqle.getMessage()有关。但是我不知道问题出在哪儿,高手们帮我想想。
      

  4.   

    你从写了getInt()方法吗?不然你这样写怎么可能取到值呢?a=rs1.getInt(strSql1);b=rs2.getInt(strSql2);  strSql1 and strSql2为sql语句,怎样转换成int型呢?肯定会抛异常的呀
      

  5.   

    断点断下来debug一下,不去做就永远不会debug,不会debug你就趁早离开这一行
      

  6.   

    int a,b; 
    a=rs1.getInt("sellcount"); 
    b=rs2.getInt("medicinecount"); rs的外面少了几句:while(rs1!=null&&rs1.next()){
    a=rs1.getInt("sellcount");
    }
    while(rs2!=null&&rs2.next()){
    b=rs2.getInt("medicinecount");
    }
      

  7.   

    NullPointerException
    空指针异常
    一般做数据库连接时容易出现这个
    我上次忘记连接直接就执行语句..就出现这个错误了..