<p>最直接的一个思路是,将查询得到的记录集,以HTML表格的形式显示在网页中。那么只需要写一个循环,依次将记录集中的每一行每一列的值,对应写到HTML表格的每一行每一列中即可。</p>
具体来说,假设记录集一共有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</pre>
至于如何在ASP中将数据库中的查询出来,那么需要使用数据库连接。如果使用涂鸦博客中的CDatabase数据库类,那么可以很简单的实现,如:
Dim db, state, sqlSet 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,你只需要复制就行了。