0

以下のコードの 1 つだけを使用していた場合、私のコードは正常に機能していましたが、別のコードを追加すると、その結果が表示されませんでした。同じページで 2 回実行すると、EOF が機能しないようです。誰かが助けてくれれば、それはありがたいです。

<% while (NOT con.EOF) %>
    CODE HERE
<%con.MoveNext()
 Wend %>

コード:

<% if not con.BOF then %>
<div style="margin-top:1em">

<form action="dbresults.htm" method="get">

      <p>Company name:<br/>
      <select name="abn">
        <option label="All companies" value="all"></option>
        <% while (NOT con.EOF) %>
       <option label="<%=con("legal")%>" value="<%=con("abn")%>"></option>
    <%con.MoveNext()
                      Wend %>
  </select>
  </p>
 <p>Categories for Creative Design:<br/>
  <select name="cat">
    <option label="All categories" value="all"></option>
    <option label="Strategic brand, marketing and communications advice" value="a"></option>
    <option label="Graphic design and layout" value="b"></option>
    <option label="Forms design" value="c"></option>
    <option label="Web design and development" value="d"></option>
    <option label="Authoring services" value="e"></option>
    <option label="Editorial services" value="f"></option>
    <option label="Translation services" value="g"></option>
    <option label="Photography and film services" value="h"></option>
    <option label="Scanning and digitisation services" value="i"></option>
    <option label="Multimedia editing services" value="j"></option>
  </select>
</p>
<input type="submit" value="Search" />
</form>
<br /><hr />

<table style="font-size:.9em;" class="contentTable">
      <tr>
            <th>ABN:</th>
            <th>Company Name:</td>
      </tr>
  <% while (NOT con.EOF) %>
      <tr>
            <td><%=con("abn")%></th>
            <td><a href="dbcomp.htm?abn=<%=con("abn")%>&cat=all">         
 <%=con("legal")%></a></td>
      </tr>
 <%
   con.MoveNext()
Wend
  %>
 </table>
</div>
 <% else %>
 <p>No records match your query.</p>
  <p><a href="dbtest.htm">Return to search page</a></p>
 <%
 end if
 con.close
 %>
4

2 に答える 2

3

最初の WHILE ループ ( while (NOT con.EOF)) の後、レコードセットは EOF のままになるため、2 番目のループは何もしません。2 番目のループの前に、レコードセット内でカーソルの位置を変更する必要があります。con.MoveFirst()、などを使用con.MovePrevious()して位置を変更します。

于 2013-01-09T22:17:49.213 に答える
1

con.MoveFirst()同じレコードセットを反復処理する場合は、最初のループが完了した後に が必要です。

于 2013-01-09T22:16:44.440 に答える