请教JSP中数据库操作取不到SUM运算结果值的问题!!多谢!!!

jndingxin 2004-12-31 11:09:26
使用sqlbean.executeQuery("select count(*) as cnt from Requre1");没问题,insert、delete、update都没问题,运行正常,但是当执行
sqlbean.executeQuery("select sum(Mount) as cnt from Requre1");时,出现问题,当执行
if(sqlbean.next))
{
totalRecord = sqlbean.getInt("cnt");
}时时出现NullPointerException异常,也就是说根本取不到SUM运算得到的值,请问出现这种问题一般都是什么原因引起的,因为执行其他操作都正常,只是执行SUM时遇到问题,请高手指点。多谢!!!!
...全文
156 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
NoCry 2004-12-31
检查一下Mount的数据类型对不对!
回复
华生豆 2004-12-31
if(sqlbean.next())
{
totalRecord = sqlbean.getInt(1);
}

试试这样~~~
回复
jndingxin 2004-12-31
问题解决,感谢大家!!!尤其感谢tom2005(快乐着),决定结帖,非常感谢大家的帮助。
回复
非思丸智能 2004-12-31
SELECT SUM(TransferIQuantity) AS cnt FROM TransferIMaster 你这句在数据库里运行有值吗????大哥,如果有值就不会用问题,还有你异常了给个0给它,怎么还是null不会吧?
回复
lmzh171 2004-12-31
dui
回复
非思丸智能 2004-12-31
sqlbean.executeQuery("select sum(Mount) as cnt from Requre1");
System.out.println(sqlbean.next());
你就先用这个把数据打出来,如果是异常,那你的数据库里就没有值,如果有值再用
if(rs.next()){................}
回复
jndingxin 2004-12-31
这样我也试过,如下:
int totalRecord=0;
ResultSet rs = sqlbean.executeQuery("SELECT SUM(TransferIQuantity) AS cnt FROM TransferIMaster");
try
{
if(rs.next())//加上这句后就出现java.lang.NullPointerException
{
totalRecord = rs.getInt("cnt");

}
}
catch(java.lang.NullPointerException e)
{
totalRecord = 0;
}
还是取不到值,totalRecord是null值。
回复
tom2005 2004-12-31
这个是一个问题,一般是你把游标设为了滚动了,使用一些函数sun等时会出现

因为该列未包含在聚合函数中,并且没有 GROUP BY 子句

如果只是简单的查询

stat = conn.createStatement()这样就可以了


把游标设为了滚动,可以改一sql 语句

select sum(Mount) as cnt from Requre1 group by 0/Mount



if(sqlbean.next))
{
totalRecord = sqlbean.getInt("cnt");
}时

这里也不对吧
回复
hollypansy 2004-12-31
是否有列数据为空?考虑使用sum(nvl(列名,0))
回复
lmzh171 2004-12-31
sqlbean是什么东西?是你的bean的 id麽?还是说sqlbean是一个db?

sqlbean.executeQuery("select sum(Mount) as cnt from Requre1");的话,它应该返回一个纪录集的把

然后这个记录集(比如rs),使用if(rs.next()){................}
回复
tonee 2004-12-31
sqlbean.executeQuery("select sum(Mount) as cnt from Requre1");
sqlbean.next();
totalRecord = sqlbean.getInt("cnt");

看看这样写对不对~
回复
jndingxin 2004-12-31
对,是sql server 数据库,用的是sql 驱动
回复
jndingxin 2004-12-31
在数据库中运行,能得到结果,我也认为是中间传值出了问题,但不清楚问题出在哪儿,如何改正呢?调试时,加上
sqlbean.next();出现异常,空指针。
不知道为什么中间传值出了问题?请指点!!!!
回复
tom2005 2004-12-31
是sql server 数据库吧,用的是sql 驱动对吧
回复
pigo 2004-12-31


猜测是数据类型不对,先 sqlbean.getString("cnt");打出来看看。

回复
lmzh171 2004-12-31
简单,打log不就可以了麽

不过楼主没有说清楚,具体哪一行有问题
回复
zhkchi 2004-12-31
关注中。。。。。。。。。。。
回复
非思丸智能 2004-12-31
1§用控制台打出数据,看有没有得到数据,如果空指针,那一定是没有数据了,
2§你用sql在数据库里运行一下,看能不能得到结果,
3§如果可以,那就是中间传值出了问题
数据库的问题自己打印出来调试是最好的,一点点的走走,可能是什么问题真不好说!!
回复
fzlotuscn 2004-12-31
好象TOP也不行呀
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-12-31 11:09
社区公告
暂无公告