2014-02-10 26 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