If statement if-then语句不起作用

If statement if-then语句不起作用,if-statement,for-loop,asp-classic,If Statement,For Loop,Asp Classic,我一直在尝试各种组合,以使这个if-then语句在我的ASP页面上起作用。我已经从2 access数据库中调用了字段,然后我需要比较这两个字段,以查看是否有一个工具对它们进行了报告 起初,我使用设施名称作为两个数据库文件的锚。在名称中出现双引号的问题之前,它工作得相当好。这个代码有效 <% for k=0 to y-1 if (B(1,k)) = facility then %>&bull;<a href="

我一直在尝试各种组合,以使这个
if-then
语句在我的ASP页面上起作用。我已经从2 access数据库中调用了字段,然后我需要比较这两个字段,以查看是否有一个工具对它们进行了报告

起初,我使用设施名称作为两个数据库文件的锚。在名称中出现双引号的问题之前,它工作得相当好。这个代码有效

 <%
          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
          %>
&bull
因此,我所做的只是在第二个数据库(第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
      %>
&bull
正如你所看到的,我已经测试过这些值实际上是相同的。此
的结果,如果

2006225\2006225假2006225\2007101假2006225\2006225假 2006225\2004245假2006225\279025假2006225\2006225假 2006225\2006225假2006225\2006225假2006225\2006225假


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

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

您应该使用适当的ASP标记来标记您的问题,例如
ASP.Net
如果(“&B(12,k))=(”&ID),那么
99%在那里,第二次尝试不起作用,但您是对的。即使我提取数字,MS Access中的字段也是纯文本类型。