首页 > 解决方案 > 应该为真的 if 语句的问题出现为假

问题描述

我们最近将一个非常旧的站点迁移到了一个新服务器,并且遇到了一个奇怪的问题。有一个简单的 if 语句,在旧服务器上应该和确实读为 true,但它不是也不知道为什么。声明如下。当我写出 invflag 时,它等于 1,这是我所期望的。

'does not trigger as true so iChk remains = ""
iChk = ""
if invflag = True then
    iChk = "checked"
end if

'Works as expected
iChk = ""
if invflag = "1" then
    iChk = "checked"
end if

'works as expected
iChk = ""
if invflag = 1 then
    iChk = "checked"
end if

我知道我们可以简单地解决这个问题,如您所见,但我们在整个代码中散布着这些类型的语句,如果服务器或数据库有什么东西,我们可以设置这是理想的,我想我会检查一下。

标签: asp-classic

解决方案


简单地转换为CBool应该在所有情况下都可以解决问题:

If CBool(invflag) = True Then
    iChk = "checked"
End If

或更好

If CBool(invflag) Then
    iChk = "checked"
End If

推荐阅读