我有一个if..else语句,可以根据数据库中的值显示学生是否有资格参加比赛。但是,我的代码无法正常工作。
我的代码如下:
<% If (rs_view.Fields.Item("StudentStatus").Value="OK") Then %>
<strong><font color="#3300FF" size="-1" face="Arial, Helvetica, sans-serif">
<%Response.Write("You are QUALIFIED to go for competition")%>
</font></strong>
<% Else %>
<strong><font color="#FF0000" size="-1" face="Arial, Helvetica, sans-serif">
<%Response.Write("You are NOT QUALIFIED to go for competition")%>
</font></strong>
<% End If %>
有什么想法吗?
答案 0 :(得分:5)
您的记录集中的StudentStatus字段可能是小写的吗?将它包裹在UCase()中?
此外,您可以真正简化该代码的可读性......
<%
Dim RspMsg, RspColor
If (UCase(rs_view("StudentStatus"))="OK") Then
RspMsg = "You are QUALIFIED to go for competition"
RspColor = "#3300FF"
Else
RspMsg = "You are NOT QUALIFIED to go for competition"
RspColor = "#FF0000"
End If
%>
<strong><font color="<%=RspColor%>" size="-1" face="Arial, Helvetica, sans-serif">
<%=QualificationResponse%></font></strong>
答案 1 :(得分:1)
你有大量的还原剂代码..这段代码和你的代码一样,但有点减少了。您还应该将样式移动到样式表中。
<%
If rs_view("StudentStatus") & "" = "OK" Then
%><strong><font color="#30f" size="-1" face="Arial, Helvetica, sans-serif">You are QUALIFIED to go for competition</font></strong><%
Else
%><strong><font color="#f00" size="-1" face="Arial, Helvetica, sans-serif">You are NOT QUALIFIED to go for competition</font></strong><%
End If
%>
现在,StudentStatus根本不行。您需要做的是输出StudentStatus并查看它是什么,例如在问题中的代码之前或之后插入以下内容(或上面的简化版本)并检查输出:
<%
Response.Write "*" & Server.HTMLEncode(rs_view("StudentStatus")) & "*"
%>
可能的原因是OK是小的大写,它是用空格填充的,或者根本不是正常的,而是1或者是真或其他。
答案 2 :(得分:0)
尝试将第一行替换为:
<% If (rs_view.Fields.Item("StudentStatus").Value=="OK") Then %>
单个=
会为StudentStatus分配一个“OK”值,但==
会将StudentStatus的值与“OK”值进行比较。
我没有测试过,但希望这是你正在寻找的。 p>