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

博主面试兼职时,CEO要求在20分钟内实现一个算法,该算法根据输入表的字段序号字符串生成表格,包含对应字段名称的表头。博主花费一个多小时完成,还提供了完整程序和数据库的打包下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

< formmethod = " post " action = "" >
请输入需要列出的字段序号(以逗号隔开,比如1,
3 , 5 ): < br >< inputtype = " text " name = " No " value = " <%=Trim(Request( " No " ))%> " > < inputtype = " submit " name = " submit " value = " Submit " >
</ FORM >
< %
Const IsSql = 0 ' 定义数据库类型为Access

Function OpenConn(Conn) ' 打开数据库连接
Dim ConnStr
If IsSql = 1 Then ' 如果是SQLServer数据库
' SQLServer数据库连接参数:用户名、用户密码、数据库名、连接名(本地用local,外地用IP)
Dim SqlUsername,SqlPassword,SqlDatabaseName,SqlLocalName
SqlUsername
= " sa "
SqlPassword
= ""
SqlDatabaseName
= " Test "
SqlLocalName
= " (local) "
ConnStr
= " Provider=Sqloledb;UserID= " & SqlUsername & " ;Password= " & SqlPassword & " ;InitialCatalog= " & SqlDatabaseName & " ;DataSource= " & SqlLocalName & " ; "
Else ' 如果是Access数据库
Dim Db
Db
= " Test.mdb "
ConnStr
= " Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:DatabasePassword=applebbs;DataSource= " & Server.MapPath(Db)
End If
On Error Resume Next
Set Conn = Server.CreateObject( " ADODB.Connection " )
Conn.OpenConnStr
If Err Then
' Err.Clear
Set Conn = Nothing
echo
" 数据库连接出错,请检查连接字串。 "
Response.End
End If
EndFunction

Function CloseConn(Conn) ' 关闭数据库连接
If IsObject (Conn) Then
Conn.Close
Set Conn = Nothing
End If
EndFunction

Function echo(Str)
Response.WriteStr
& VbCrlf
EndFunction

If Request( " submit " ) = " Submit " Then
Call OpenConn(Conn)
strNo
= Trim (Request( " No " ))
Strtemp
= Split (strNo, " , " ) ' 以逗号分割成数组
Sql = " Select*FromTest "
Set Rs = Server.CreateObject( " Adodb.RecordSet " )
Rs.OpenSql,Conn,
1 , 1
echo
" <tableborder=""1""> "
MM
= 1
If Rs.Eof Then ' 如果无记录
echo " <tralign=""center""><td>Sorry,nodata!<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 " <tralign=""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 % >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值