代码如下:
                 <%String seatgrade="";
                    
                    while(rs.next()){
                     seatgrade=rs.getString("seatgrade");
                
                   if(seatgrade.equals("top"))
                       seatgrade="头等舱";
                   else if(seatgrade.equals("mid"))
                       seatgrade="经济舱";
                   else if(seatgrade.equals("bg1")) 
                          seatgrade="折扣舱";
                    
                   else
                       seatgrade="最低价";
                 
                     
                    %>
  <td align="center" class="style16"><%=seatgrade%></td><%}%>
从数据库读出来明明的是"top"(如果不用if else语句直接显示seatgrade的话),但是加上if else 做判断,seatgrade显示出来就是最低价.肯定是if else 的语句哪里写错了,请各位指点一下~谢谢了~

解决方案 »

  1.   

    seatgrade=rs.getString("seatgrade");
    ->
    seatgrade=rs.getString("seatgrade").trim()在字符串末尾的空格等字符你是看不到的
      

  2.   

    初始化时,修改为String seatgrade;
    再试一下吧!
      

  3.   

    应该是seatgrade字段中后面有空格,你的字段应该不是varchar的,if else 本身没有问题
      

  4.   

    解决
    1 如果你只想取出 seatgrade一条数据,建议用if(rs.next())。因为while会不停的从数据库中读取数据,导致你结果错误。
    2不用 if。。else 直接用if 做判断,看看是否正确。
    3建议你 不要把while 和if 写在一起。分开写
      

  5.   

    很明显while应该改为if<%String seatgrade="top";
                    
           if(seatgrade.equals("top"))
               seatgrade="头等舱";
           else if(seatgrade.equals("mid"))
               seatgrade="经济舱";
           else if(seatgrade.equals("bg1")) 
                  seatgrade="折扣舱";
            
           else
               seatgrade="最低价";
         
          out.println(seatgrade);            
     %>
    这样是“头等舱”,自己琢磨
      

  6.   

    空格问题吧,打印出来看看seatgrade的具体值是什么。
      

  7.   

    问题解决,真的是后面有空格,看不见,加上trim()后就正确了!谢谢