如果声明在ASP Classic中未按预期工作

时间:2009-07-26 04:24:04

标签: asp-classic

我有一个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 %>

有什么想法吗?

  • 它无法正常工作。意味着学生是合格的还是不合格的,对于这两种状态,它仍然会显示不合格。

3 个答案:

答案 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”值进行比较。
我没有测试过,但希望这是你正在寻找的。