vb.net перебирает datarow и добавляет каждое значение в список - PullRequest
2 голосов
/ 23 июля 2010
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 к списку.

Любая помощь?

1 Ответ

1 голос
/ 26 июля 2010

Если я вас правильно понимаю, вы хотите добавить каждый столбец в datarow как новый элемент 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 до тех пор, пока не будет добавлен последний столбец.

Пожалуйста, имейте в виду, что я не проверял этот код.

НТН

...