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

王朝html/css/js·作者佚名  2006-12-17
宽屏版  字体: |||超大  

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

输入表的序号数组生成表格 本来想找个兼职的,结果一个公司的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 %>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有