Arrays 如何在VBScript中将循环结果存储到数组中?

Arrays 如何在VBScript中将循环结果存储到数组中?,arrays,vbscript,asp-classic,Arrays,Vbscript,Asp Classic,我有一个循环,我想把结果放入数组中。 这是我的循环 For i = 1 To bill a = rs("CT08_Tarikh") 'from db cutiumum = Array(a) 'and this is how I declare array rs.MoveNext Next rs.Close Set rs = Nothing End If 然后,我将把变量传递给另一个函数: tarikh = Ne

我有一个循环,我想把结果放入数组中。 这是我的循环

    For i = 1 To bill
        a = rs("CT08_Tarikh") 'from db
        cutiumum = Array(a)   'and this is how I declare array
        rs.MoveNext
    Next
    rs.Close
    Set rs = Nothing
End If
然后,我将把变量传递给另一个函数:

tarikh = NetWorkdays(dateFrom, dateTo, cutiumum)

Public Function NetWorkdays(dtStartDate, dtEndDate, arrHolidays)
但是,当我尝试在函数
NetWorkdays
中为
arrhelidays
执行一些循环时,它只返回1个数据(并非全部来自
cutium

你认为我犯了什么错

更新

我已经在用了

dim arrRecordset

arrRecordset = rs.GetRows()
但是我在函数中遇到了一个错误

Public Function NetWorkdays(dtStartDate, dtEndDate, arrHolidays)
    Dim lngDays
    Dim lngSaturdays
    Dim lngSundays
    Dim lngHolidays
    Dim lngAdjustment
    Dim dtTest
    Dim i, x

    lngDays = DateDiff("d", dtStartDate, dtEndDate)
    lngSundays = DateDiff("ww", dtStartDate, dtEndDate, vbSunday)
    lngSaturdays = DateDiff("w", IIf(Weekday(dtStartDate, vbSunday) = vbSaturday, dtStartDate, dtStartDate - Weekday(dtStartDate, vbSunday)), dtEndDate)

    For x = LBound(arrHolidays) To UBound(arrHolidays)
        For i = 0 To lngDays
            dtTest = DateAdd("d", i, dtStartDate)

'error in line here: Subscript out of range: 'arrHolidays'
            If arrHolidays(x) = dtTest And Weekday(dtTest) <> 1 And Weekday(dtTest) <> 7 Then
                lngHolidays = lngHolidays + 1
            End If
        Next
    Next

    If Weekday(dtStartDate, vbSunday) = vbSunday Or Weekday(dtStartDate, vbSunday) = vbSaturday Then
        lngAdjustment = 0
    Else
        lngAdjustment = 1
    End If

    NetWorkdays = lngDays - lngSundays - lngSaturdays - lngHolidays + lngAdjustment
End Function
公共功能网络日(dtStartDate、dtEndDate、arrHolidays)
昏暗的乡间小路
昏暗的自然
昏暗的星期天
昏暗的森林
暗调
弱DTT测试
暗i,x
lngDays=DateDiff(“d”,dtStartDate,dtEndDate)
lngSundays=DateDiff(“ww”,dtStartDate,dtEndDate,vbSunday)
lngSaturdays=DateDiff(“w”,IIf(工作日(dtStartDate,vbSunday)=vbSaturday,dtStartDate,dtStartDate-工作日(dtStartDate,vbSunday)),dtEndDate)
对于x=LBound(arrHolidays)到UBound(arrHolidays)
对于i=0到lngDays
dtTest=DateAdd(“d”,i,dtStartDate)
'此处的行中出现错误:下标超出范围:'arrHolidays'
如果假日(x)=dtTest和工作日(dtTest)1以及工作日(dtTest)7,则
lngHolidays=lngHolidays+1
如果结束
下一个
下一个
如果工作日(dtStartDate,vbSunday)=vbSunday或工作日(dtStartDate,vbSunday)=VB星期六,则
lngAdjustment=0
其他的
lngAdjustment=1
如果结束
NetWorkdays=lngDays-lngSundays-lngSaturdays-lngHolidays+lngAdjustment
端函数
试试这个:

dim arrRecordset
arrRecordset = rs.GetRows()
getRows()方法将记录集一次性转换为二维数组:

试试这个:

dim arrRecordset
arrRecordset = rs.GetRows()
getRows()方法将记录集一次性转换为二维数组:


看起来不错,但我出错了。我已经更新了我的问题,如果您能看一下,我将不胜感激。这是您使用getRows()创建的相同数组吗?在这种情况下,可能是因为数组是二维的。您需要为UBound和LBound提供一个维度:如果使用调试器,这些问题很容易发现。您是否安装了(免费)Visual Studio?您可以使用它来调试ASP。在ASP代码的某个地方添加“stop”一词,VS将在那里中断。好啊我会的。谢谢。这里有一个关于如何用VS调试asp的更详细的解释。看起来不错,但我有一个错误。我已经更新了我的问题,如果您能看一下,我将不胜感激。这是您使用getRows()创建的相同数组吗?在这种情况下,可能是因为数组是二维的。您需要为UBound和LBound提供一个维度:如果使用调试器,这些问题很容易发现。您是否安装了(免费)Visual Studio?您可以使用它来调试ASP。在ASP代码的某个地方添加“stop”一词,VS将在那里中断。好啊我会的。谢谢。这里有一个关于如何用VS调试asp的更详细的解释。