2014-02-10 24 views
1

有人可以告诉我,我做错了什么....如何使用数据集

我想通过一个数据集循环来填充ObjectListView控制(我不想将其绑定到填充ObjectListView到我的数据集)。第一行填充,但之后没有任何内容。

我的代码看起来像这样:

If dsOverdueCalls.Tables.Count > 0 And dsOverdueCalls.Tables(0).Rows.Count > 0 Then 
    For x = 0 To (dsOverdueCalls.Tables(0).Rows.Count - 1) 
      'Calculate overdue amount 
      ..... 

      Dim lstCalls = New List(Of [Call_Details])() From {New [Call_Details]() With {.Id = tempDT.Rows(x)("id").ToString, .Summary = tempDT.Rows(x)("summary").ToString, .First_Name = tempDT.Rows(x)("first_name").ToString, .Due_At = OverdueStr}} 
      lsvOverdueCalls.SetObjects(lstCalls) 
    Next 
End If 

我没有得到任何错误,但只有第一个记录将在我的控制填充。 谢谢

回答

1

您在每次迭代中重置ObjectListView。所以,你认为“第一”行实际上是最后一行。以下代码将解决您的问题。

If ((dsOverdueCalls.Tables.Count > 0) AndAlso (dsOverdueCalls.Tables(0).Rows.Count > 0)) Then 
    Dim lstCalls = New List(Of [Call_Details]) 
    For x As Integer = 0 To (dsOverdueCalls.Tables(0).Rows.Count - 1) 
     lstCalls.Add(New [Call_Details]() With {.Id = tempDT.Rows(x)("id").ToString, .Summary = tempDT.Rows(x)("summary").ToString, .First_Name = tempDT.Rows(x)("first_name").ToString, .Due_At = OverdueStr}) 
    Next 
    lsvOverdueCalls.SetObjects(lstCalls) 
End If 
+1

感谢您的帮助! – Riples