2
Private Function ColumnEqual(ByVal A As Object, ByVal B As Object) As Boolean
  If A Is DBNull.Value AndAlso B Is DBNull.Value Then
    Return True 
  End If

  If A Is DBNull.Value OrElse B Is DBNull.Value Then
    Return False 
  End If

  Return A.Equals(B)
End Function
...

Public lastV As Object
...
For Each dr In wData.Rows
  If lastV Is Nothing OrElse Not ColumnEqual(lastV, dr("table1")) Then
    ''check if first value is nothing
    If lastV = Nothing Then
      lastV = "00"
      l = "0"
    Else
      dr("t1") = lastV
      dr("n1") = l
    End If
    ListBox1.Items.Add(lastV & " <--> " & l)
    lastV = dr("table1")
    l = 1
  ElseIf lastV Is Nothing OrElse ColumnEqual(lastV, dr("table1")) Then
    l += 1
  End If
Next

我使用这段代码来循环我的DataRow.

它将每条记录添加到 aListBox中,但不会将 中的最后一条记录添加 DataRow到列表中。

有什么帮助吗?

4

1 回答 1

1

如果我理解正确,您希望将数据行中的每一列添加为 ListBox 中的新 ListBox 项。

如果我是对的,那么下面的例子就可以了。我会使用数据集:

Dim i As Integer = 0
For j As Integer = 0 To wData.Tables(0).Columns.Count - 1
    ListBox1.BeginUpdate()
    ListBox1.Items.Add(wData.Tables(0).Rows(i)(j).ToString)
    ListBox1.EndUpdate

    If j = wData.Tables(0).Column.Count - 1 Then
        i = i + 1
    End If
Next

这会将第 i 行中每一列的内容添加到 ListBox。该If语句阻止它递增i,直到添加最后一列。

请记住,我没有测试过这段代码。

高温高压

于 2010-07-26T08:34:33.023 回答