asp中如何将一个字符串作为布尔值来使用?

来源:百度知道 编辑:UC知道 时间:2024/05/20 10:38:08
我在某程序中根据用户选择的情况动态生成了一个字符串Bool_Str。
Bool_Str的值是不一定的,可能是"a=1 or b=1",也可能是"a=1 or b=2 or c=3"等等。

现在我想将Bool_Str作为布尔值,即IF语句的条件来使用,也就是希望以:

IF Bool_Str then ...

的方式来引用Bool_Str的值。经试验用如上方式是不行的,提示错误为:类型不匹配。

请问该如何在IF语句中引用Bool_Str,使之能作为布尔值使用?

看这个例子你就会了:

<%
a=1
b=2
c=3

Bool_Str = "c=a+b"

If Eval(Bool_Str) Then
Response.write "相等"
Else
Response.write "不等"
End If
%>

加个引号"" 或者 Let C="Bool_Str"

<%
Bool_Str = "a=1 or b=2 or c=3"
IF Bool_Str then
response.write(a=1 or b=2 or c=3)
Else
response.write("ok")
End if
%>
如果这样就报错

如果改成这样就OK了
<%
Bool_Str = a=1 or b=2 or c=3
IF Bool_Str then
response.write(a=1 or b=2 or c=3)
Else
response.write("ok")
End if
%>

关键在这一句
Bool_Str = a=1 or b=2 or c=3
赋值的时候不要加引号,如果有引号,ASP就会把“a=1 or b=2 or c=3”作为一个字符串来处理,所以会报错