Классический ASP-скрипт не возвращает значение в ELSE

#asp-classic #ado

#asp-классический #ado

Вопрос:

Первый постер и довольно новичок в программировании на ASP.

Я пытаюсь добавить функциональность, которая проверяет, является ли поле пустым, если да, возвращает заданное значение. Вот что у меня есть до сих пор:

 'rsGlobalWeb is basicly declared the same as rsBackup just in a different asp file with also the db connection.
<%  If rsGlobalWeb("Serial") <> "" Then
        response.write("<td>" amp; rsGlobalWeb("Serial") amp; "</td>")
    Else
        SqlBackup = "SELECT * FROM CMDBbackup WHERE Naam_Cattools = '" amp;     rsGlobalWeb("Device_name") amp; "'" 
        Set rsBackup = Server.CreateObject("ADODB.Recordset")
        rsBackup.Open SqlBackup, dbGlobalWeb, 3
        If Not rsBackup.EOF Then
            If Not IsNull(rsBackup("Serial")) And (rsBackup("Serial") <> "")     Then     
                response.write("<td>" amp; rsBackup("Serial") amp; " (backup)</td>")
            Else
                response.write("<td>No historical data found</td>")
            End if
        End if
    End if
%>
  

Теперь о проблеме: когда в резервной базе данных есть значение, оно показывает это значение в сочетании с «(backup)» за ним. Так что все работает нормально. Проблема в том, что когда значение не найдено, оно ничего не возвращает.

Я попытался выполнить некоторые поисковые запросы Google, но, возможно, я что-то упускаю из виду. Есть мысли, что это может быть?

Заранее спасибо,

Эрик

Комментарии:

1. Сколько записей возвращается в вашем запросе? Я предполагаю, что записей нет, и в вашем коде сказано ничего не делать в этом случае.

Ответ №1:

Ваши Response.Write операторы заключены в If Not rsBackup.EOF Then оператор.

Ничего не будет записано, если в нем нет записей rsBackup .

Комментарии:

1. Спасибо за быстрый ответ. Я переместил первый КОНЕЦ IF перед ELSE, и теперь он работает отлично. Миллион благодарностей за понимание.