将ASP纪录集输出成n列表格的方法

网络整理 - 07-26
前些日子有网友问:将ASP纪录集输出成n列的的表格形式显示的方法,现在写了一个,方便大家使用。


  ''定义变量
  Dim cn,rs,Sql
  Sql = "select CustomerID from Orders"

  ''记录总数
  Dim TotalNumbe
  Set cn = Server.CreateObject("ADODB.Connection")
  cn.Open "Provider=SQLOLEDB.1;User ID=sa;Initial Catalog=NorthWind;Data Source=.;Password=;"

  Set rs = Server.CreateObject("ADODB.Recordset")
  rs.Open Sql, cn, 3, 1
  TotalNumber = rs.RecordCount
  If TotalNumber = 0 Then
  Response.Write "没有记录输出。"
  Else
  Dim jj,nLeft,cCol
  jj = 0
  nCol = 415
  nLeft = nCol- (TotalNumber Mod nCol)
  If nLeft = nCol Then nLeft = 0
  Response.Write "<table border><tr>" & vbCrLf
  While not rs.EOF
  Response.Write "<td>" & rs("CustomerID") & "</td>" & vbCrLf
  ''If (jj Mod nCol) = (nCol - 1) And jj <> TotalNumber - 1 Then Response.Write "</tr><tr>" & vbCrLf
  ''If (jj Mod nCol) = (nCol - 1) And jj = TotalNumber-1 Then Response.Write "</tr>" & vbCrLf
  
  If (jj Mod nCol) = (nCol - 1) Then
  If jj <> TotalNumber - 1 Then
  Response.Write "</tr><tr>" & vbCrLf
  Else
  Response.Write "</tr>" & vbCrLf
  End If
  End If
  jj = jj + 1
  rs.MoveNext
  Wend
  If nLeft <> 0 And nLeft <> nCol Then
  If nCol < TotalNumber Then
  For i = 1 to nLeft
  Response.Write "<td> </td>" & vbCrLf
  Next
  End If
  Response.Write "</tr>" & vbCrLf
  End If
  Response.Write "</table>"
  End If
  rs.Close
  Set rs = Nothing
  cn.Close
  Set cn = Nothing
  Response.End