2010-07-23 172 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

相关问题