如果 then 语句不起作用 asp

if then statement not working asp

我一直在尝试每一种组合,以使这个 if then 语句在我的 ASP 页面上起作用。我从 2 个访问数据库调用字段,然后我需要比较两者以查看是否有设施针对它们进行报告。

起初我使用设施名称作为两个数据库文件的锚点。它工作得很好,直到名称中的双引号出现问题。此代码有效

 <%
          for k=0 to y-1
          if (B(1,k)) = facility then
          %>&bull;<a href="detail-e.asp?ID=<%=B(0,k)%>"><%=B(2,k)%></a><br /><%
          end if
          NEXT
          %>

所以我所做的就是在第二个数据库中添加一个设施 ID 号(第 12 行),因为该 ID 已经存在于第一个数据库中

      <%
      for k=0 to y-1
          response.write(ID)
          response.write("\")
          response.write(B(12,k))
      if (B(12,k)) = ID then
          response.write("TRUE")
      %>&bull;<a href="detail-e.asp?ID=<%=B(0,k)%>"><%=B(2,k)%></a><br /><%
      else
          response.write("FALSE")
      end if
          response.write("<br>")
      NEXT
      %>

如您所见,我已经测试过这些值实际上是相同的。这个If Then的结果是;

200622506225FALSE 200622507101FALSE 200622506225FALSE 200622504245FALSE 20062259025FALSE 200622506225FALSE 200622506225FALSE 200622506225FALSE 200622506225FALSE

由于您的示例代码没有显示您的名为 ID 的变量是如何分配的,我的第一个猜测是这可能是由于变量在 VBscript 中没有类型化,您可能没有将您期望的类型分配给上面提到的变量或上面代码中的数组。您可能希望使用强制串联来确保评估基于字符串类型。您可以在 VBscript 中连接一个空字符串以强制它将整个表达式计算为一个字符串(这也是您编写输出时发生的情况)。如果它以这种方式工作,那么很可能您的变量实际上可能被分配给记录集字段而不是字符串值或类似的东西。

if ("" & B(12,k)) = ("" & ID) then