過程的最后一步是格式化數據并顯示,就是建立一個HTML輸出,步驟如下:
依次循環記錄集(Recordset)中每一個字段(Field),寫標題 依次循環記錄集和每一個字段,寫數值 例程代碼將整個的HTML表格組合為一個長字符串,最后輸出到HTML頁面。字符串初始化為如下值:
DataTable = "< table >< tr >"
電子數據表的列的必要信息由記錄集對象的Field集合產生,它包括了一系列字段對象,可以使用它們的Name屬性建立標題行。
For Each oField in oRs.Fields DataTable = DataTable & "< th >" & oField.Name & "< /th >" Next DataTable = DataTable & "< /tr >"
最新打開的記錄集(recordset)自動將初始位置指向第一行,使用MoveNext方法移動記錄指針,順序存取每一行,直到整個記錄集的末尾。當到記錄集末尾時,屬性Eof的值變成True,循環結束。在循環中,通過字段集合的列舉以及對應的Value屬性,從而達到單元格數據的存取。
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的表格結束標記,輸出整個字符串到頁面,形成了動態產生的表格。由于記錄集對象不再需要,所以要釋放它。
DataTable = DataTable & "< /table >" Set oRs = Nothing
Response.Write DataTable
在總結前,有必要說明一個小的定義在電子數據表是如何解釋的。
通常,在ADO中將一定范圍內的第一行解釋為一套列標題,盡管在ODBC中有明文定義的選項可以禁止這種解釋,但我也不愿意在ADO中這么做。如果第一行包含數字信息,那么ADO中將返回通用的字段名,比如:F1,F2,等等...,這樣就不能看到數字的值。而且,ADO也會將第一行中的“非字母、非數字”字符替換為符號#。
|