1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

输入表的序号数组生成表格

本帖由 小叶2006-06-19 发布。版面名称:后端开发

  1. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    完整程序和数据库打包下载:http://www.cnblogs.com/Files/Dicky/Test.rar

    HTML:
    <form method="post" action="">
    请输入需要列出的字段序号(以逗号隔开,比如1,3,5):<br><input type="text" name="No" value="<%=Trim(Request("No"))%>"> <input type="submit" name="submit" value="Submit">
    </FORM>
    <%
    Const IsSql = 0    '定义数据库类型为Access
    
    Function OpenConn(Conn)     '打开数据库连接
        Dim ConnStr 
        If IsSql = 1 Then '如果是SQL Server数据库 
            'SQL Server数据库连接参数:用户名、用户密码、数据库名、连接名(本地用local,外地用IP) 
            Dim SqlUsername,SqlPassword,SqlDatabaseName,SqlLocalName 
            SqlUsername = "sa" 
            SqlPassword = "" 
            SqlDatabaseName = "Test" 
            SqlLocalName = "(local)" 
            ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";" 
        Else  '如果是Access数据库 
            Dim Db
            Db = "Test.mdb" 
            ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=applebbs;Data Source = " & Server.MapPath(Db)
        End If 
        On Error Resume Next 
        Set Conn = Server.CreateObject("ADODB.Connection") 
        Conn.Open ConnStr 
        If Err Then 
    '        Err.Clear 
            Set Conn = Nothing 
            echo "数据库连接出错,请检查连接字串。" 
            Response.End 
        End If 
    End Function
    
    Function CloseConn(Conn)  '关闭数据库连接 
        If IsObject(Conn) Then
            Conn.Close 
            Set Conn = Nothing
        End If
    End Function
    
    Function echo(Str)
        Response.Write Str & VbCrlf
    End Function
    
    If Request("submit") = "Submit" Then
        Call OpenConn(Conn)
        strNo = Trim(Request("No"))
        Strtemp = Split(strNo,",") '以逗号分割成数组
        Sql = "Select * From Test"
        Set Rs = Server.CreateObject("Adodb.RecordSet")
        Rs.Open Sql,Conn,1,1
        echo "<table border=""1"">"
        MM = 1
        If Rs.Eof Then '如果无记录
            echo "    <tr align=""center""><td>Sorry,no data!<td></tr>"
        Else
            echo "    <tr>"
            echo "        <th>序号</th>"
            For I = 0 To Ubound(Strtemp) '先循环列出字段名作为表头
                echo "        <th>" & Rs.Fields(CInt(Strtemp(I))-1).Name & "</th>"
            Next
            echo "    </tr>"
            Do While Not Rs.Eof '循环列出所有数据行
                echo "    <tr align=""center"">"
                echo "        <td>" & MM & "</td>"
                For I = 0 To Ubound(Strtemp) '循环列出字段值
                    echo "        <td>" & Rs(CInt(Strtemp(I))-1) & "</td>"
                Next
                echo "    </tr>"
            MM = MM + 1
            Rs.MoveNext:Loop
        End If
        echo "</table>"
        Rs.Close
        Set Rs = Nothing
        Call CloseConn(Conn)
    End If %>
     
  2. alistorm

    alistorm New Member

    注册:
    2006-05-29
    帖子:
    273
    赞:
    2
    :cry: 看不懂呀~我哭~
     
  3. 空气飘飘

    空气飘飘 New Member

    注册:
    2005-12-26
    帖子:
    3,658
    赞:
    33