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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在VBScript中将循环结果存储到数组中?相关的知识,希望对你有一定的参考价值。

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

    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)

但是,当我尝试在函数arrHolidays中为NetWorkdays做一些循环时,它只返回1个数据(不是全部来自cutiumum)。

你觉得我的错是什么?

更新

我已经在使用了

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
答案

试试这个:

dim arrRecordset
arrRecordset = rs.GetRows()

getRows()方法将一次性将记录集转换为二维数组:

https://www.w3schools.com/asp/met_rs_getrows.asp

以上是关于如何在VBScript中将循环结果存储到数组中?的主要内容,如果未能解决你的问题,请参考以下文章

在VBScript中将项目添加到数组

java:把查询结果存储到resultSet对象中,在把该对象的数据放置在一个JTable对象中

VBScript - 在 SQL Server 中将 SHA1 存储为数字或二进制值

如何使用循环绑定mysqli参数并将结果存储在数组中?

如何在循环中将结果导出到 CSV

如何将 For 循环结果转换为数组,然后在 C# 中计算结果数组的整数?