2015-03-06 3 views
0

Я пробовал каждую комбинацию, чтобы сделать это заявление if then на моей странице ASP. Я вызываю поля из 2 базы данных доступа, тогда мне нужно сравнить оба, чтобы увидеть, есть ли объект, который имеет отчет против них.if then statement not working asp

Сначала я использовал имя объекта в качестве якоря для обоих файлов базы данных. Он работал очень хорошо, пока не возникла проблема с двойными кавычками в названии. Этот код работал

<% 
      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;

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

+0

Вы должны пометить свой вопрос соответствующим тегом ASP, таким как 'ASP.Net'. – crashmstr

ответ

0

Так как ваш пример кода не показывает, как ваш Идентификатор переменной с именем ID, мое первое предположение заключается в том, что это может быть связано с тем, что переменные не идентифицируются в VBscript, и вы не можете назначать тип, который вы ожидаете либо с указанной выше переменной, либо с вашим массивом в приведенном выше коде. Вы можете использовать принудительное конкатенацию, чтобы убедиться, что оценка основана на строковых типах. Вы можете конкатенировать пустую строку в VBscript, чтобы заставить ее оценивать все выражение как строку (это то, что также происходит при написании вывода). Если он работает таким образом, то, скорее всего, ваша переменная может фактически быть назначена для поля набора записей, а не для строкового значения или чего-то подобного.

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

'if (" "& B (12, k)) = (" "& ID) then' 99%, это вторая попытка, которая не сработала, но вы правы. Даже если я вытягиваю числа, поля в MS Access находятся в обычном тексте _type_. –