求助:用jsp求数据之和

shksdsj 2010-05-08 07:51:10
首先查询并显示数据库中sr表,然后需要求出表中sramount这个字段相对应的数据之和,主要是关于sum那段代码有错误
希望高手帮忙看一下如何改,谢谢!!!


<%@ page language="java" contentType="text/html;charset=gb2312"
import="java.util.*,java.sql.*" pageEncoding="GB2312"%>
<link rel="stylesheet" href="css/code43.css" type="text/css">
<HTML><HEAD>
<title>查询数据并求和</title>
<META http-equiv=Content-Type content="text/html; charset=gb2312">

</HEAD>
<BODY style=scrollbar-arrow-color:#227776;scrollbar-base-color:#C6DCDE text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0 background="img/bg.gif" marginwidth="0" marginheight="0" >



<form name="form" method="post">
<div align="center">
<table width="959" height="177" border="0">
<tr>
<td width="115" align="right"><div align="center">标题</div></td>
<td width="118" height="37" align="right"><div align="center">日期:</div></td>
<td width="139"><div align="center">金额</div></td>
<td width="102"><div align="center">地点</div></td>
<td width="152"><div align="center">科目</div></td>
<td width="269"><div align="center">心情</div></td>
<td width="34"> </td>
</tr>
<%
request.setCharacterEncoding("gb2312");
String strError = null;
String userid=(String)session.getAttribute("user");
float sum=0;


try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:goodschaginfo");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from sr where regname like '%"+userid+"%'";
out.println("查询结果如下:");
ResultSet rs = stmt.executeQuery(sql);


while(rs.next())
{
%>
<tr>
<td align="center"><%= rs.getString("srtitle") %></td>
<td height="53" align="center"><%= rs.getString("srdate") %></td>

<td height="53" align="center"><%= rs.getString("sramount") %></td>
<td height="53" align="center"><%= rs.getString("srlocation") %></td>
<td align="center"><%= rs.getString("srkemu") %></td>
<td height="53" align="center"><%= rs.getString("srmood") %></td>
</tr>





//以下这段代码有错
sum=sum+sramount;
session.setAttribute("sum",sum);



<%
}
rs.close();
stmt.close();
con.close();

}
catch(ClassNotFoundException e){
strError = e.toString();
}
catch(SQLException e){
strError = e.toString();
}

%>
<tr>
<td height="79" colspan="3" align="center"> 
<input type="button" name="Submit2" value="返回" onClick="window.history.go(-1);"> </td>
<td height="79" colspan="3" align="center"><div align="left">收入金额总计:<%=sum%></div></td>
<td height="79" align="center"> </td>
</tr>
</table>
</div>
</form>

</TD>




</td>
</tr>
</table>

</BODY></HTML>
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shksdsj 2010-05-08
  • 打赏
  • 举报
回复
谢谢楼上的高手,十分感谢!!!!!
laker_914 2010-05-08
  • 打赏
  • 举报
回复
 

<%@ page language="java" contentType="text/html;charset=gb2312"
import="java.util.*,java.sql.*" pageEncoding="GB2312"%>
<link rel="stylesheet" href="css/code43.css" type="text/css">
<HTML><HEAD>
<title> 查询数据并求和</title>
<META http-equiv=Content-Type content="text/html; charset=gb2312">

</HEAD>
<BODY style=scrollbar-arrow-color:#227776;scrollbar-base-color:#C6DCDE text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0 background="img/bg.gif" marginwidth="0" marginheight="0" >



<form name="form" method="post">
<div align="center">
<table width="959" height="177" border="0">
<tr>
<td width="115" align="right"><div align="center">标题</div></td>
<td width="118" height="37" align="right"><div align="center">日期:</div></td>
<td width="139"><div align="center">金额</div></td>
<td width="102"><div align="center">地点</div></td>
<td width="152"><div align="center">科目</div></td>
<td width="269"><div align="center">心情</div></td>
<td width="34"> </td>
</tr>
<%
request.setCharacterEncoding("gb2312");
String strError = null;
String userid=(String)session.getAttribute("user");
float sum=0 , sramount=0;


try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:goodschaginfo");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from sr where regname like '%"+userid+"%'";
out.println("查询结果如下:");
ResultSet rs = stmt.executeQuery(sql);

String tmp = "";
while(rs.next())
{
tmp = rs.getString("sramount");
if (tmp == null || "".equals(tmp)){ tmp = "0";}
%>
<tr>
<td align="center"><%= rs.getString("srtitle") %></td>
<td height="53" align="center"><%= rs.getString("srdate") %></td>

<td height="53" align="center"><%= tmp %></td>
<td height="53" align="center"><%= rs.getString("srlocation") %></td>
<td align="center"><%= rs.getString("srkemu") %></td>
<td height="53" align="center"><%= rs.getString("srmood") %></td>
</tr>
<%




// 以下这段代码有错
sum += Float.parseFloat(tmp);
}
session.setAttribute("sum",sum);
rs.close();
stmt.close();
con.close();

}
catch(ClassNotFoundException e){
strError = e.toString();
}
catch(SQLException e){
strError = e.toString();
}

%>
<tr>
<td height="79" colspan="3" align="center"> 
<input type="button" name="Submit2" value="返回" onClick="window.history.go(-1);"> </td>
<td height="79" colspan="3" align="center"><div align="left">收入金额总计:<%=sum%></div></td>
<td height="79" align="center"> </td>
</tr>
</table>
</div>
</form>
</TD>
</td>
</tr>
</table>

</BODY></HTML>



呵呵,红色地方手误,不好意思!
shksdsj 2010-05-08
  • 打赏
  • 举报
回复
4楼的大哥 按照你的代码也会报错啊

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 44 in the jsp file: /ccc.jsp
Type mismatch: cannot convert from int to String
41: while(rs.next())
42: {
43: tmp = rs.getString("sramount");
44: if (tmp == null || "".equals(tmp)){ tmp = 0;}
45: %>
46: <tr>
47: <td align="center"><%= rs.getString("srtitle") %></td>


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.

shksdsj 2010-05-08
  • 打赏
  • 举报
回复
sum=sum+sramount;
session.setAttribute("sum",sum);

应该放在哪里?
laker_914 2010-05-08
  • 打赏
  • 举报
回复

<%@ page language="java" contentType="text/html;charset=gb2312"
import="java.util.*,java.sql.*" pageEncoding="GB2312"%>
<link rel="stylesheet" href="css/code43.css" type="text/css">
<HTML><HEAD>
<title> 查询数据并求和</title>
<META http-equiv=Content-Type content="text/html; charset=gb2312">

</HEAD>
<BODY style=scrollbar-arrow-color:#227776;scrollbar-base-color:#C6DCDE text=#000000 bgColor=#ffffff leftMargin=0 topMargin=0 background="img/bg.gif" marginwidth="0" marginheight="0" >



<form name="form" method="post">
<div align="center">
<table width="959" height="177" border="0">
<tr>
<td width="115" align="right"><div align="center">标题</div></td>
<td width="118" height="37" align="right"><div align="center">日期:</div></td>
<td width="139"><div align="center">金额</div></td>
<td width="102"><div align="center">地点</div></td>
<td width="152"><div align="center">科目</div></td>
<td width="269"><div align="center">心情</div></td>
<td width="34"> </td>
</tr>
<%
request.setCharacterEncoding("gb2312");
String strError = null;
String userid=(String)session.getAttribute("user");
float sum=0 , sramount=0;


try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:goodschaginfo");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from sr where regname like '%"+userid+"%'";
out.println("查询结果如下:");
ResultSet rs = stmt.executeQuery(sql);

String tmp = "";
while(rs.next())
{
tmp = rs.getString("sramount");
if (tmp == null || "".equals(tmp)){ tmp = 0;}
%>
<tr>
<td align="center"><%= rs.getString("srtitle") %></td>
<td height="53" align="center"><%= rs.getString("srdate") %></td>

<td height="53" align="center"><%= tmp %></td>
<td height="53" align="center"><%= rs.getString("srlocation") %></td>
<td align="center"><%= rs.getString("srkemu") %></td>
<td height="53" align="center"><%= rs.getString("srmood") %></td>
</tr>
<%




// 以下这段代码有错
sum += Float.parseFloat(tmp);
}
session.setAttribute("sum",sum);
rs.close();
stmt.close();
con.close();

}
catch(ClassNotFoundException e){
strError = e.toString();
}
catch(SQLException e){
strError = e.toString();
}

%>
<tr>
<td height="79" colspan="3" align="center"> 
<input type="button" name="Submit2" value="返回" onClick="window.history.go(-1);"> </td>
<td height="79" colspan="3" align="center"><div align="left">收入金额总计:<%=sum%></div></td>
<td height="79" align="center"> </td>
</tr>
</table>
</div>
</form>
</TD>
</td>
</tr>
</table>

</BODY></HTML>
laker_914 2010-05-08
  • 打赏
  • 举报
回复
sramount 没看到你定义的地方,另外建议楼主加个颜色吧,看都看不清
shksdsj 2010-05-08
  • 打赏
  • 举报
回复
刚学jsp,很多地方都不是很懂
kaynezhang 2010-05-08
  • 打赏
  • 举报
回复
你这当然有误了,java语句都不在 <%里面,而且sramount 还没看到在哪里定义,而且session.setAttribute("sum",sum);这句好像还写到循环里面去了啊。哎

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧