2010-07-23 179 views
1
 Private Function ColumnEqual(ByVal A As Object, ByVal B As Object) As Boolean 

     If A Is DBNull.Value And B Is DBNull.Value Then 
      Return True 
     End If 

     If A Is DBNull.Value Or B Is DBNull.Value Then 
      Return False 
     End If 
     Return A = 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 

我使用此代碼循環訪問我的數據行。 它將每條記錄添加到列表框中,但它不會將 數據行中的最後一條記錄添加到列表中。vb.net通過數據行循環並將每個值添加到列表框中

任何幫助。

感謝

+0

什麼是lastV,你在哪裏初始化了這些變量和這個循環? – 2010-07-23 14:15:00

+0

當數據加載到datagridview中時,循環被初始化。 – Gbolahan 2010-07-23 14:26:45

+0

對不起,\t我不能做它的頭或尾巴。 但我強烈建議在您的項目設置中設置「Option Strict」,或者 - 在您的Visual Studio選項中更好地全局設置。 – 2010-07-23 21:50:10

回答

0

如果我理解正確的話,你要在DataRow中添加的每個列在列表框中一個新的列表框項目。

如果我是對的,那麼下面的例子就可以做到。我會使用一個數據集:

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行中每列的內容添加到列表框中。 If聲明阻止它增加i,直到它被添加到最後一列。

請注意,我沒有測試過這段代碼。

HTH

+0

會給它一個鏡頭,讓你知道..化妝師! – Gbolahan 2010-07-26 09:50:54

相關問題