数据库是sql server 2000
读出语句是: String tt=rs.getString(i);//i是定义为int型的.
比较:if(tt.equals("很满意"))
     {
     d=d+1;}
输出d的值:out.print(d);
结果为0;
并不是希望值:true或flase;整个文件如下:
<%@ page contentType="text/html; charset=gb2312" import="java.sql.*" language="java" errorPage=""%>
<%request.setCharacterEncoding("gb2312");%>
<jsp:useBean id="connn" scope="session" class="project3.Link_db"></jsp:useBean>
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=gb2312">
</head>
<body leftmargin="0" topmargin="0">
<table cellpadding="0" cellspadding="0" border="1" align="center" width="750" height="65">
 <tr> 
    <td colspan="0" rowspan="0" align="center" width="750" height="60">
       统计结果
    </td>
 </tr>
 <tr>
    <td colspan="0" rowspan="0" align="center" width="750" height="5">
     <hr align="center" width="750" size="2p"  color="#000000"></hr>
    </td>
 </tr>
</table>
<%
 String Color[]={"yellow","deepink","darkcyan","deepskyblue","orange","lightslategray"};
 String Opt1[]={"很满意","很不满意","不满意","满意","尚可"};
 String Opt[]={"您满意本网站的内容吗?","你满意本网站的版面设计吗?","你满意本网站的风格吗?"};
 for(int i=1;i<4;i++)
 {
  String sql="SELECT * FROM stat3";
  Connection con=connn.getCon();
  Statement stmt=con.createStatement();
  ResultSet rs=stmt.executeQuery(sql);
  float a=0.00f;
  float b=0.00f;
  float c=0.00f;
  float d=0.00f;
  float num=0.00f;
  float senter=100.00f;
  float e=0;
  while(rs.next())
  {
   num=num+1;
   String tt=rs.getString(i);
   out.print(tt+"<br>");
   int rad=10;
   if(tt.equals("满意"))   (此需比较值)
   {
     b=b+1;}
   if(tt.equals("很满意"))
   {
     d=d+1;}
   if(tt.equals("尚可"))
   {
    e=e+1;}
   if(tt.equals("不满意"))
   {
    c=c+1;}
   }
   rs.close();
   stmt.close();
   con.close();
   out.print(num+"<br>");
   out.print(d+","+a+","+b+","+c+","+e+","+"<br>");
   out.print(senter+"<br>");
   float rad[]={d*num/senter,a*num/senter,c*num/senter,b*num/senter,e*num/senter};
   out.print(Opt[i-1]+"<br>");
   for(int h=0;h<5;h++)
   {
    out.print(rad[h]);
   }
%><%
 for(int j=0;j<5;j++)
 {
  out.print("&nbsp;&nbsp;"+Opt1[j]);
  out.println(rad[j]+"%"+"<br>");
%>
 <table cellpadding="0" cellspadding="0" >
  <tr>
     <td colspan="0" rowspan="0" align="left" height="20">
       <table cellpadding="0" cellspadding="0" width="<%=rad[j]*4%>" border="0" height="20">
        <tr>
           <td width="31" bgcolor="<%=Color[j]%>"></td>
        </tr>
       </table>
     </td>
  </tr>
 </table>
<%
 }
 }
%></body>
</html>是否从数据库中读出数据要经过处理才可以用equals来比较?
或是我写的语法有错?
帮帮!!!

解决方案 »

  1.   

    你取的tt在数据库是int。String tt=rs.getString(i);
    float d=0.00f;在此时tt就是String ,不过是从int转换而来的。那么你tt的值就会是"1"or "2"因为此时根本就不会满足其中的任何一个条件,所以d还是0.00
    if(tt.equals("很满意")) //"1".equals("很满意") 根本就不等 
         {
         d=d+1;} // 如果进入了d也只会是1.0 也不会是true or false
      

  2.   

    回复人: wsk_228(qing_feng) ( ) 信誉:100 
    那么你tt的值就会是"1"or "2"String tt=rs.getString(i);这个式子其中rs.getString(i);运行过的.可以读出结果的.
    比如在上面文件中:
    ...
       String tt=rs.getString(i);
       out.print(tt+"<br>");
       int rad=10;
    ....
    这段中就可以输出tt的值是从数据库中读出来的..多谢你..
    能帮我再看看吗?
    我在数据库中定义类型是char的.
    这个有问题的吗?
      

  3.   

    我说的“1”or "2"
    并不是一定是这两个数来的。如果你存的值是1那么tt就会是“1”,2的话tt="2";
    只是变成字符串了,输出是没有问题的,如果是1或“1”在页面输出都会是1
    char 型的输出的也不会是boolean 。要想输出布尔型的,那你就得声明为boolean 
      

  4.   

    rs.getString(i)跟这个有什么关系啊。这个只是在数据库中映射出来的下标
    String tt=rs.getString(i)当然是能显示数据库的数据了。
    i是段变量。。你的数据库字段类型定义是否是String 型。。就很难说了。只有你自己才知道
      

  5.   

    char是定长字段 如果字符串不够长 后面会用空格补齐这样试试看 String tt=rs.getString(i).trim();
      

  6.   

    因为equals()方法要求传一个对象,而char类型的变量不是一个对象,所以就出错了
      

  7.   

    回复人: yyzh(答题容易分难得) ( ) 信誉:100  2005-12-08 22:07:00  得分: 0  
     
     
       char是定长字段 如果字符串不够长 后面会用空格补齐这样试试看 String tt=rs.getString(i).trim();
      
     
    我改来试试回复人: yyzh(答题容易分难得) ( ) 信誉:100  2005-12-08 22:07:00  得分: 0  
     
     
       char是定长字段 如果字符串不够长 后面会用空格补齐这样试试看 String tt=rs.getString(i).trim();
    那要定义成什么类型的..
    能把数据库里的数据类型和JAVA定义的对照发一份给我吗 回复人: xiongbing528(程序人生) ( ) 信誉:91  2005-12-08 22:01:00  得分: 0  
     
     
       rs.getString(i)跟这个有什么关系啊。这个只是在数据库中映射出来的下标
    String tt=rs.getString(i)当然是能显示数据库的数据了。
    i是段变量。。你的数据库字段类型定义是否是String 型。。就很难说了。只有你自己才知道
     我在SQL server 2000中定义为char
    我不知道数据库中定义为char拿出来是什么类型这里多谢你们了..
      
     
      

  8.   

    可以了...
    原来是数据库中char定义的问题...
    多谢你们.