数据库是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(" "+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来比较?
或是我写的语法有错?
帮帮!!!
读出语句是: 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(" "+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来比较?
或是我写的语法有错?
帮帮!!!
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
那么你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的.
这个有问题的吗?
并不是一定是这两个数来的。如果你存的值是1那么tt就会是“1”,2的话tt="2";
只是变成字符串了,输出是没有问题的,如果是1或“1”在页面输出都会是1
char 型的输出的也不会是boolean 。要想输出布尔型的,那你就得声明为boolean
String tt=rs.getString(i)当然是能显示数据库的数据了。
i是段变量。。你的数据库字段类型定义是否是String 型。。就很难说了。只有你自己才知道
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拿出来是什么类型这里多谢你们了..
原来是数据库中char定义的问题...
多谢你们.