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.

各レコードを に追加しますが、 の最後のレコードをリストListBoxに追加しません 。DataRow

何か助けはありますか?

4

1 に答える 1

1

私があなたを正しく理解していれば、データ行の各列を ListBox の新しい ListBox アイテムとして追加する必要があります。

私が正しければ、次の例がそれを行います。私はDataSetを使用します:

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

私はこのコードをテストしていないことに注意してください。

HTH

于 2010-07-26T08:34:33.023 に答える