有人可以告诉我为什么使用经典ASP错误抛出类型不匹配?
If (strPaidByPO = True) OR (arrResult(0) = "1") Then
'Do Stuff
Else
'Do Other stuff
End if
arrResults是一个数组,而strPaidByPO是一个变量。
谢谢,
答案 0 :(得分:1)
在If
语句之前键入以下内容(我认为您可能会对类型做出假设)。
Call Response.Write(TypeName(strPaidByPO) & "<br />")
Call Response.Write(TypeName(arrResult) & "<br />")
Call Response.Flush()
如果您的变量属于您期望的类型,则应获得以下输出
Boolean
Variant()
如果你的数组是多维的,你可能会收到这个,在这种情况下你需要指定所有的维度。
另一种可能性是arrResult(0)
包含String
以外的内容。在这种情况下,使用TypeName(arrResult(0))
来检查它是什么。
答案 1 :(得分:1)
尝试此操作并查看可以更正脚本的结果:
response.write(cStr(strPaidByPO) & "- My strPaidByPO value<br>")
response.write(arrResult(0) & "- My Array value")
If (strPaidByPO = True) OR (cStr(arrResult(0)) = "1") Then
'Do Stuff
Else
'Do Other stuff
End if
但是如果你的strPaidByPO包含的值除了true - false(布尔值),你需要完全检查你的方法。例如,如果strPaidByPO为NULL或为空,则您的脚本将通过您所描述的错误。