数组数组visual basic

时间:2015-03-25 14:53:08

标签: arrays vb.net visual-studio-2010

我正在开发一个模块,用于从ZKSoftware指纹生物识别中捕获Attlogs并使用CD附带的SDK将其发送到MySQL数据库,到目前为止,我设法成功连接到时钟,显示日志listview,但是我在多维数组上推动了数值,我确定它是一个声明问题,但我最好请求帮助......代码如下:

Dim thisLog(1) As String
Dim allLogs()() As String = New String()() {}

之后迭代次数(i)加载我得到的列表视图中的Attlog:

            thisLog = {sdwEnrollNumber, idwYear.ToString() & "-" + idwMonth.ToString() & "-" & idwDay.ToString() & " " & idwHour.ToString() & ":" & idwMinute.ToString() & ":" & idwSecond.ToString()}
            allLogs(i) = {thisLog(0), thisLog(1)}

我得到的错误与数组的大小有关,因此可以恢复如何使用捕获数据的每一行创建矩形数组(2)(n)的问题。提前致谢

2 个答案:

答案 0 :(得分:2)

我强烈建议您创建一个用于存储数据的类。之后有一个List(Of LogEntry)。这将使您的代码更容易阅读。

Class LogEntry

    Public Property EnrollNumber As String
    Public Property EntryDate As DateTime

    Public Sub New(ByVal enrollNumber As String, ByVal entryDate As DateTime)

        Me.EnrollNumber = enrollNumber
        Me.EntryDate = entryDate

    End Sub

End Class

要添加新记录,您只需创建该类的实例并将其添加到列表中。

    Dim allLogs As New List(Of LogEntry)

    allLogs.Add(New LogEntry(sdwEnrollNumber, New DateTime(idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond)))

由于您现在拥有一个有效的日期而不是字符串的连接,因此以后可以轻松进行操作。

    Console.WriteLine(allLogs(0).EnrollNumber)
    Console.WriteLine(allLogs(0).EntryDate.ToString("yyyy-MM-dd HH:mm:ss"))

答案 1 :(得分:1)

  

如何使用捕获数据的每一行创建一个矩形数组(2)(n)?

使用清单:

Dim allLogs As New List(Of String())()

allLogs.Add(New String(1) {sdwEnrollNumber, _
     String.Format("{0}-{1}-{2} {3}:{4}:{5}", _
     idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond)} )

我也可以使用appropriate DateTime constructorformat string格式化第二部分,具体取决于您首先获得这些idw变量的方式。