如果然后声明不工作的asp

时间:2015-03-06 19:55:21

标签: if-statement for-loop asp-classic

我一直在尝试每个组合,以使这个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
          %>

所以我所做的就是在第二个数据库(第12行)中添加一个设施ID号,因为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的结果是;

  

2006225 \ 2006225FALSE 2006225 \ 2007101FALSE 2006225 \ 2006225FALSE   2006225 \ 2004245FALSE 2006225 \ 279025FALSE 2006225 \ 2006225FALSE   2006225 \ 2006225FALSE 2006225 \ 2006225FALSE 2006225 \ 2006225FALSE

1 个答案:

答案 0 :(得分:0)

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

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