2009-07-26 8 views
0

私はif..elseステートメントを持っています。これは、学生がデータベースの値に基づいて競技に出かける資格があるかどうかを表示します。しかし、私のコードは正しく動作していません。ASPクラシックで陳述が期待通りに動作しない場合

<% 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

詳細をお知らせください。そのような、コードが何をしているかは、あなたが期待するものではありませんか? – Eric

+0

は正しく動作しません。学生が資格を有するか、資格を与えられていないかのいずれかであるため、両方のステータスについて未認定のまま表示されます。 –

+0

このコードをif文の上に置くと、2つの間で何が得られますか?<%response.write( "*"&rs_view.Fields.Item( "StudentStatus")> Value& "*
")%> –

答えて

5

おそらく、あなたのレコードセットのStudentStatusフィールドが小文字ですか?それをUCase()でラップしますか?

また、あなたは本当にこのコードはあなたと同じことが、少しは軽減..あなたがredudantコードの負荷を持っている...読みやすくするために

<% 
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> 
+0

ありがとう..私はあなたのコードを使用しようとしました。しかし、それは正しく動作しないようです。学生が資格を持っているか、資格を持っていないことを意味します。 Pls help..thank you .. –

+2

あなたのStudentStatusが "OK"に等しくないように聞こえますが、StudentStatusの値を出力して実際の内容を調べるようにしてください。一般的に、あなたが発見しているときに状態列に文字データを作るのは悪い考えです。 StudentStatusをStatusテーブルへの外部キー参照にすると、StudentStatusの可能な値が制約され、あいまいさが解決されます。 – MyItchyChin

+0

これを行う方法を教えてもらえますか? StudentStatusをステータステーブルの外部キー参照にすると、StudentStatusの値が制約されます。 –

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は単にOKではありません。あなたがする必要があるのは、StudentStatusを出して、それが何であるかを見ることです。あなたの質問(以上減少バリアント)内のコードの前または後に以下を挿入し、それが出力だチェック:

<% 
Response.Write "*" & Server.HTMLEncode(rs_view("StudentStatus")) & "*" 
%> 

考えられる原因は、OKがスモールキャップであり、それはスペースで埋めだということですかOKではありませんまったくではなく、代わりに1つまたは真または何でも。

+0

ありがとう..私はあなたのコードを使用してみました..しかし、それは正しく動作しないようです..つまり、学生が資格を持つ資格を持っているか、資格がない資格を持っているかのどちらかです。 Pls help..thank .. –

+2

コードに2番目のコードスニペットを挿入しましたか?認定資格者として表示する必要がある学生を見ているときに星間で何が言いますか? – svinto

+0

はい、私はコードを挿入します。実際の値が "OK"でも、 "NOTOK"イベントのデータベースに値が表示されます –

0

を持つ最初の行を交換してみてください:

<% If (rs_view.Fields.Item("StudentStatus").Value=="OK") Then %> 

単一=はStudentStatusに「OK」の値を割り当てますが、==は、値「OK」に対するStudentStatusの値を比較します。
私はそれをテストしていませんが、うまくいけば、これはあなたが探しているものです。

+0

これは100%ですが、完全に完全に間違っています:VBScriptで素敵な構文エラーが発生します。 – Martha

関連する問題