如何将数据库中查出的记录显示在ASP页面中

最直接的一个思路是,将查询得到的记录集,以HTML表格的形式显示在网页中。那么只需要写一个循环,依次将记录集中的每一行每一列的值,对应写到HTML表格的每一行每一列中即可。

具体来说,假设记录集一共有n行数据,m个字段。

先用一个循环处理字段,即写出m个表头。

再用一个大循环处理n行数据,对其中每行数据,又要用一个小循环,处理m个字段值。这里有一个2层的循环嵌套。

下面是具体的实现代码,它接受一个参数,即记录集变量。返回一个字符串,即HTML表格标签代码。

    '
    ' 输出结果集
    '
    Public Function OutputRS(objRS)
        Dim i, j

        '标题行(表头)
        OutputRS = OutputRS & "<table class=""tbRS"">"
        OutputRS = OutputRS & "<thead><tr>"
        For i = 0 To objRS.Fields.Count - 1
            OutputRS = OutputRS & "<th>" & " " & objRS.Fields(i).Name & "</th>"
        Next
        OutputRS = OutputRS & "</tr></thead>"
        
        '数据行
        If objRS.State > 0 And objRS.RecordCount > 0 Then
            objRS.MoveFirst
            OutputRS = OutputRS & "<tbody>"
            For i = 0 To objRS.RecordCount - 1
                OutputRS = OutputRS & "<tr>"
                For j = 0 To objRS.Fields.Count - 1
                    OutputRS = OutputRS & "<td>"
                    On Error Resume Next
                    OutputRS = OutputRS & " " & objRS.Fields(j).Value
                    '如果发生错误,则可能是因为结果集里的数据不是文本类型等,而是二进制类型引起的。
                    If Err.number <> 0 Then
                        OutputRS = OutputRS & "非文本数据"
                    End If
                    On Error Goto 0
                    OutputRS = OutputRS & "</td>"
                Next
                OutputRS = OutputRS & "</tr>"
                objRS.MoveNext
            Next
            OutputRS = OutputRS & "</tbody>"
        End If
        
        OutputRS = OutputRS & "</table>"
        On Error Goto 0
    End Function

至于如何在ASP中将数据库中的查询出来,那么需要使用数据库连接。如果使用涂鸦博客中的CDatabase数据库类,那么可以很简单的实现,如:

Dim db, state, sql

Set db = New CDatabase ' CDatabase 就是那个数据库类,位于CDatabase.asp 文件中。

' 连接到你的数据库
state = db.Connect2Access("你的数据库路径", "", "")
If state = 1 Then
  '连接成功,指定查询语句
  sql = "SELECT '你的具体查询语句'"

  ' 打开查询结果记录集
  db.OpenRecordset sql

  ' 显示结果记录集
  Response.Write OutputRS(db.oRS)
Else
  Response.Write "数据库连接失败。"
End If

Set db = Nothing

你可以使用自己的记录集。

如果你要用CDatabase类的话,还需要在代码中使用<!--#include file="CDatabase.asp"-->的方式将 CDatabase.asp 包含进来��

CDatabase.asp 文件源代码在http://www.myfootprints.cn/blog/post/14.html,你只需要复制就行了。

Add comment

Loading