logo

通过循环读取DataReader,生成多列的表格

作者:孟宪会 阅读:2828 发表于:2009-02-01 15:51:22

本文章没有什么技术含量,纯粹是提供给初学者参考之用。

int toShowColumn = 4; System.Text.StringBuilder sb = new System.Text.StringBuilder(); string cnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\aspxWeb.mdb;"; OleDbConnection cn = new OleDbConnection(cnString); cn.Open(); OleDbCommand cmd = new OleDbCommand("Select * from Document", cn); OleDbDataReader dr = cmd.ExecuteReader(); sb.Append("<table border='1'>"); while (dr.Read()) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append(dr["Title"].ToString()); sb.Append("</td>"); for (int i = 0; i < toShowColumn - 1; i++) { if (dr.Read()) { sb.Append("<td>"); sb.Append(dr["Title"].ToString()); sb.Append("</td>"); } else { sb.Append("<td>&nbsp;</td>"); } } sb.Append("</tr>"); } sb.Append("</table>"); div1.InnerHtml = sb.ToString(); dr.Close(); cn.Close(); cn.Dispose();

例子:查看例子

ASP的代码:

<% Dim cnString, cn, rs cnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("aspxWeb.mdb") Set cn = Server.CreateObject("ADODB.Connection") cn.Open cnString Set rs = cn.Execute("Select * from Document") Response.Write "<table border='1'>" While Not rs.EOF Response.Write "<tr>" For i = 1 To 4 If Not rs.EOF Then Response.Write "<td>" & rs("Title") & "</td>" rs.MoveNext Else Response.Write "<td>&nbsp;</td>" End If Next Response.Write "</tr>" Wend Response.Write "</table>" rs.Close cn.Close Set rs = Nothing Set cn = Nothing %>