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); 这是用来提取值的
请各位高手帮忙修改下,看有没有好的建议,先谢谢了!
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); 这是用来提取值的
请各位高手帮忙修改下,看有没有好的建议,先谢谢了!
另a=rs1.getInt(strSql1);
能取到a的值吗?strSql1是一个sql语句,getInt(strSql1)取的是啥?
int a,b;
a=rs1.getInt("sellcount");
b=rs2.getInt("medicinecount");
或者 rs.getInt(字段),也没有运行成功,会抛出一个null的值,可能和System.out.println(sqle.getMessage()有关。但是我不知道问题出在哪儿,高手们帮我想想。
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");
}
空指针异常
一般做数据库连接时容易出现这个
我上次忘记连接直接就执行语句..就出现这个错误了..