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

本来想找个兼职的,结果一个公司的CEO考偶这样的题目:要一个算法实现一个这样个功能,输入一个表的字段的序号,根据该序号字符串生成表格,一个表的字段的序号代表需要列出的字段,还要有表头(即列出所输入的序号相对应的字段的名称),要求在20分钟内搞定,结果花了偶一个多小时,暴汗:(

完整程序和数据库打包下载:http://www.cnblogs.com/Files/Dicky/Test.rar

< 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  % >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值