Dim rs,conn,i,j,t,count
'声明变量rs为ADODB.RecordSet对象,conn为ADODB.Connection对象
'i,j,t为循环临时变量,count为记录高的数量
Dim Ary()'声明数组记录高的间距
'打开数据库
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open "select * from SG Order By ID ASC",conn,1,3'序号在数据库升序排列
count=0'初始化高的数量
'第一次循环统计高的数量
Do Until rs.EOF
if rs("GAO")="高" Then
count=count+1
End IF
rs.MoveNext
Loop
rs.MoveFrist'记录集移动到开头以备下一次循环
ReDim Ary(count)'重定义数组大小为高的数量
count=0'初始化高的数量
t=0'初始化变量t用于记录间距
'第二次循环将间距存入数组
Do Until rs.EOF
if rs("GAO")="高" Then'如果为高
Ary(count)=t'存入间距到数组
t=0'记录变量清0继续记录
count=count+1'数组下标变量自增
End IF
t=t+1
rs.MoveNext
Loop
'开始冒泡排序代码(原理跟我之前写的都差不多只不过是翻译为VBScript的代码,不解释了)
For i=0 To count
t=i+1
For j=count To t Step -1
IF Ary(j)<Ary(i) Then
t=Ary(j)
Ary(j)=Ary(i)
Ary(i)=t
End IF
Next
Next
'显示排序后的结果
For i=0 To count
Response.Write "排序后的数组<BR>"
Response.Write Ary(i)&"<BR>"
Next
rs.Close
Set rs=Nothing
conn.Close
Set conn=Nothing
将我前面发的那段C#的代码写成VBScript的。
这时倒数第二个间距就是
Response.Write "倒数第二个间距"&Ary(count-1)
另外conn的打开数据库代码省略了,那个你应该会写吧。
[
本帖最后由 yms123 于 2009-11-15 18:52 编辑 ]