過(guò)程的最后一步是格式化數(shù)據(jù)并顯示,就是建立一個(gè)HTML輸出,步驟如下:
依次循環(huán)記錄集(Recordset)中每一個(gè)字段(Field),寫(xiě)標(biāo)題 依次循環(huán)記錄集和每一個(gè)字段,寫(xiě)數(shù)值 例程代碼將整個(gè)的HTML表格組合為一個(gè)長(zhǎng)字符串,最后輸出到HTML頁(yè)面。字符串初始化為如下值:
DataTable = "< table >< tr >"
電子數(shù)據(jù)表的列的必要信息由記錄集對(duì)象的Field集合產(chǎn)生,它包括了一系列字段對(duì)象,可以使用它們的Name屬性建立標(biāo)題行。
For Each oField in oRs.Fields DataTable = DataTable & "< th >" & oField.Name & "< /th >" Next DataTable = DataTable & "< /tr >"
最新打開(kāi)的記錄集(recordset)自動(dòng)將初始位置指向第一行,使用MoveNext方法移動(dòng)記錄指針,順序存取每一行,直到整個(gè)記錄集的末尾。當(dāng)?shù)接涗浖┪矔r(shí),屬性Eof的值變成True,循環(huán)結(jié)束。在循環(huán)中,通過(guò)字段集合的列舉以及對(duì)應(yīng)的Value屬性,從而達(dá)到單元格數(shù)據(jù)的存取。
Do While Not oRs.EOF DataTable = DataTable & "< tr >"
For Each oField in oRs.Fields DataTable = DataTable & "< td >" & oField.Value & "< /td >" Next
DataTable = DataTable & "< /tr >" oRs.MoveNext Loop
最后,加上HTML的表格結(jié)束標(biāo)記,輸出整個(gè)字符串到頁(yè)面,形成了動(dòng)態(tài)產(chǎn)生的表格。由于記錄集對(duì)象不再需要,所以要釋放它。
DataTable = DataTable & "< /table >" Set oRs = Nothing
Response.Write DataTable
在總結(jié)前,有必要說(shuō)明一個(gè)小的定義在電子數(shù)據(jù)表是如何解釋的。
通常,在ADO中將一定范圍內(nèi)的第一行解釋為一套列標(biāo)題,盡管在ODBC中有明文定義的選項(xiàng)可以禁止這種解釋,但我也不愿意在ADO中這么做。如果第一行包含數(shù)字信息,那么ADO中將返回通用的字段名,比如:F1,F2,等等...,這樣就不能看到數(shù)字的值。而且,ADO也會(huì)將第一行中的“非字母、非數(shù)字”字符替換為符號(hào)#。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!