|
如何使用 GetString() 在 HTML 表格中显示记录集中的数据。
多行 Response.Write
下面的例子演示了在 HTML 表格中显示数据库查询的一种方法:
-
- <html>
- <body>
- <%
- set conn=Server.CreateObject("ADODB.Connection")
- conn.Provider="Microsoft.Jet.OLEDB.4.0"
- conn.Open "c:/webdata/northwind.mdb"
- set rs = Server.CreateObject("ADODB.recordset")
- rs.Open "SELECT Companyname, Contactname FROM Customers", conn
- %>
- <table border="1" width="100%">
- <%do until rs.EOF%>
- <tr>
- <td><%Response.Write(rs.fields("Companyname"))%></td>
- <td><%Response.Write(rs.fields("Contactname"))%></td>
- </tr>
- <%rs.MoveNext
- loop%>
- </table>
- <%
- rs.close
- conn.close
- set rs = Nothing
- set conn = Nothing
- %>
- </body>
- </html>
复制代码
对于一个大型的查询来说,这样做会增加脚本的处理时间,这是由于服务器需要处理大量的 Response.Write 命令。
解决的办法是创建全部字符串,从 <table> 到 </table>,然后将其输出 - 只使用一次 Response.Write。GetString() 方法
GetString() 方法使我们有能力仅使用一次 Response.Write,就可以显示所有的字符串。同时它甚至不需要 do..loop 代码以及条件测试来检查记录集是否处于 EOF。语法str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
如需使用来自记录集的数据创建一个 HTML 表格,我们仅仅需要使用以上参数中的三个(所有的参数都是可选的): - coldel - 用作列分隔符的 HTML
- rowdel - 用作行分隔符的 HTML
- nullexpr - 当列为空时所使用的 HTML
-
- <html>
- <body>
- <%
- set conn=Server.CreateObject("ADODB.Connection")
- conn.Provider="Microsoft.Jet.OLEDB.4.0"
- conn.Open "c:/webdata/northwind.mdb"
- set rs = Server.CreateObject("ADODB.recordset")
- rs.Open "SELECT Companyname, Contactname FROM Customers", conn
- str=rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
- %>
- <table border="1" width="100%">
- <tr>
- <td><%Response.Write(str)%></td>
- </tr>
- </table>
- <%
- rs.close
- conn.close
- set rs = Nothing
- set conn = Nothing
- %>
- </body>
- </html>
复制代码
上面的变量 str 包含着由 SELECT 语句返回的所有列和行的一个字符串。在每列之间会出现 </td><td>,在每行之间会出现 </td></tr><tr><td>。这样,仅使用一次 Response.Write,我们就得到了需要的 HTML。 |
|