哈哈,你这问题我遇到过。如果在数据库里取不到东西的话,rs这结果集对象就为空的,所以当你执行到if (rs.next()) {这句进就会报空指针错了。
if(rs!=null) {
......
} else {
JOptionPane.showMessageDialog(null, "没有收入!");
// 现在当rs为空,就会跳这里来了!
}
你试了没有,你那样写是一定有问题的。
你那个得不到值为空指向的。所以报错
java.lang.NullPointerException
产生这个异常的原因是变量没有初始化,也就是说变量在没有赋值的情况下被使用了
没用接触过你给出代码中的类,所以我也说不太准
分析了一下,觉得问题应该是出在这里
ResultSet rs = DatabaseTool.executeQuery(strSQL);
if (rs.next()) {
当你输入的值在数据库中无法找到时,DatabaseTool类的executeQuery并没有返回ResultSet对象,而是返回了null
建议你修改一下if语句
在if (rs.next())语句外层增加一层if语句if (rs!=null)
修改后应该是
try {
ResultSet rs = DatabaseTool.executeQuery(strSQL);
if(rs!=null){
if (rs.next()) {
String income =rs.getString("income");
dayincome = Float.parseFloat(income);
}else{
JOptionPane.showMessageDialog(null, "没有收入!");
}
}
else{
JOptionPane.showMessageDialog(null, "没有ResultSet对象!");
}
}
catch (Exception exx) {
exx.printStackTrace();
JOptionPane.showMessageDialog(null, "程序出现异常!");
}
试试行不行吧,不保证啊
有eclipse么?debug一下,看看这个时候rs的值