经典 ASP:使用 HTML Table 显示查询结果时出现问题

Classic ASP: Trouble with displaying Query Results with HTML Table

我在以 HTML 形式显示查询结果时遇到问题。当我处理这段代码时,它在我的 HTML table 中显示空白单元格。任何提示或建议将不胜感激。

ASP:

<%
dim query, myDSN, Connect, rs

myDSN = "PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE=" & Server.Mappath("/MasterDB.accdb")

query = "SELECT * FROM DAY_DATA;"

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open myDSN
Set rs = Server.CreateObject("ADODB.recordset")
rs.Open query, Connect
%>

结果页HTML:

<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
    response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
    <tr>
    <%for each x in rs.Fields%>
       <td><%Response.Write(x.value)%></td>
    <%next
    rs.MoveNext%>
    </tr>
<%loop
rs.close
conn.close
%>
</table>

如果我能让它工作,我会用他们的输入生成的字符串替换查询字符串。感谢阅读!

我创建这个函数就是为了完成那个任务...希望这有帮助:

Sub WriteRS(ByRef myRS)
    Dim i, fCount
    Response.Write ("<br><br clear=""all""><table cellspacing=1 cellpadding=5 border=1><tr>")
    For i = 0 To myRS.Fields.Count - 1
        Response.Write ("<td nowrap>" & myRS.Fields(i).name & "</td>" & vbNewLine)
    Next
    Response.Write ("</tr>" & vbNewLine)
    If Not myRS.BOF THEN myRS.MoveFirst
    fCount = myRS.Fields.Count
    Do Until myRS.EOF
        Response.Write ("<tr>" & vbNewLine)
        For i = 0 To fCount - 1
            Response.Write ("<td nowrap>" & CheckValue(Trim(myRS.Fields.Item(i).Value), "&nbsp;") & "</td>" & vbNewLine)
        Next
        Response.Write ("</tr>" & vbNewLine)
        Response.Flush
        myRS.MoveNext
    Loop
    If Not myRS.BOF THEN
        myRS.MoveFirst
    Else
        Response.Write ("<tr><td colspan=""" & fCount & """>No Data Found</td</tr>" & vbNewLine)
    End If
    Response.Write ("</table><br clear=""all"">")
End Sub

希望对您有所帮助。

尝试将 x.value 替换为 rs(x.name)

<%do until rs.EOF%>
    <tr>
    <%for each x in rs.Fields%>
    <td><%=rs(x.Name)%></td>
    <%next
    rs.MoveNext%>
    </tr>
<%loop%>

如果 x.Name 也没有返回任何内容(即您在 table 中看不到列名),请尝试调整游标类型和锁类型。

rs.Open query, Connect, 1, 2