当然了,因为你使用的getString的方法,你要用getInt的方法就行了

解决方案 »

  1.   

    代码为
    int sun=0;
    dj=rs.getInt("dj");
    sun=sun+dj;
      

  2.   

    dj=rs.getString("dj");
    ===
    dj是int?
      

  3.   

    你在定义dj在java中因该是int才行啊
      

  4.   

    int sun=0;
    int dj=rs.getInt("dj");
    sun=sun+dj;
      

  5.   

    恩,可以了,谢谢~~
    dj在java中因该是int
      

  6.   

    数据库中numeric 是什么类型?
    如果用get 应该是getString()吗?
    dj是物品单价,如果要累加,dj设置成什么类型比较好?
      

  7.   

    "dj"是什么数据类型? int还是String? 或者其他? 想用+起码两边的数据类型应该是一样的最起码是可以做+运算的才可以啊!
      

  8.   

    dj在数据库里是numeric 是类型
    sun是float类型要实现sun=sun+dj;
      

  9.   

    你dj=rs.getString("dj");这样写也不对啊,代码写全了没有啊,把代码发全了吧
    getString改为getInt
    dj没声名变量
    你接收rs也不对啊
      

  10.   

    这是全部代码:
    <%@ page contentType="text/html; charset=gbk" language="java"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="java.io.*"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk">
    <title>部门领用查询结果</title>
    <body>
    <table border='1' width='80%' align='center'>
    <%
    String dtime1,dtime2;
    String bmname,mcid,mc="",bm,djrq,sl,id;
       String strSQL,strSQL1;
       Connection con;
       Statement stmt,stmt1;
       ResultSet rs,rs1;
    float sun=0,dj;

    dtime1=request.getParameter("dtime1");
    dtime2=request.getParameter("dtime2");
    bmname=request.getParameter("bmname");
    bmname=new String(bmname.getBytes("iso-8859-1"),"GBK"); out.println("在"+dtime1+"到"+dtime2+bmname+"耗材领用情况:");
    out.println("<tr><td>"+"耗材名"+"</td><td>"+"物品单价"+"</td><td>"+"领用日期"+"</td><td>"+"仓库代码"+"</td><tr>");
    try
    {
    strSQL="SELECT * FROM hr_djb2 WHERE djrq BETWEEN'"+dtime1+"' AND '"+dtime2+"' ";
    strSQL=strSQL+" AND bm like'%"+bmname+"%'";
     
        
    //out.println(dtime1);
    //out.println(dtime2);
    //out.println(bmname);//bmname变量是部门的id,值为1,2,3,4等
        
         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=depot","sa","");
    stmt=con.createStatement();
    stmt1=con.createStatement();
    rs=stmt.executeQuery(strSQL);
    while(rs.next())
    {
               mcid=rs.getString("mcid");//物品名称ID
    strSQL1="select * from hr_zdb where id='"+mcid+"'";
    rs1=stmt1.executeQuery(strSQL1);

    while(rs1.next())
    {
    mc=rs1.getString("mc");//耗材名
    }

    rs1.close();            id=rs.getString("id");//耗材ID(应转化为耗材名)
      bm=rs.getString("bm");//部门名
      dj=rs.getString("dj");//物品单价
      djrq=rs.getString("djrq");//领用日期
      sl=rs.getString("sl");//仓库代码
      sun=sun+dj;
      //out.println(bm);    
      //out.println(djrq);
    out.println("<tr><td>"+mc+"</td><td>"+dj+"</td><td>"+djrq+"</td><td>"+sl+"</td><tr>");

    out.println("领用耗材总计价为:"+sun+"元");
    rs.close(); 
    stmt1.close();
    stmt.close();
    con.close();              
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    %>
    </table>
    </body>
    </html>
      

  11.   

    dj=rs.getString("dj");getString()返回的是String类型,所以dj是String类型。
    你把dj改成int型
    dj = rs.getInt("dj");
    看看
      

  12.   

    不行就用getFloat getDouble了,不要那么执著咯