1

在我的项目中,有时我倾向于加载我的数据集中的所有行,并按照它们的“时间”项的顺序将它们添加到我的 FlowLayoutPanel 中。这就是我想要做的,但如果它们的“时间”值是最旧的,我需要首先添加控件:

For i=1 to DataSet.Tables("myTable").Rows.Count
 Dim Row as Datarow = DataSet.Tables("myTable").Select("ID = " & i)
 Dim Time as Date = Row.Item("Time")
 Dim NewLabel as Label
 NewLabel.text = Time.ToString()
 FlowLayoutPanel.Controls.Add(newLabel)
Next

我怎么做 ?

4

1 回答 1

1

您可以使用Linq-To-DataSet

Dim timeOrderedRows = From row in DataSet.Tables("myTable")
                      Order By row.Field(Of Date)("Time")
For Each row As DataRow In timeOrderedRows
    Dim Time as Date = row.Field(Of Date)("Time")
    Dim Label as New Label
    Label.text = Time.ToString()
    FlowLayoutPanel.Controls.Add(Label)
Next

我如何反向执行此操作(从最新到最旧)

您只需添加Descending

....
Order By row.Field(Of Date)("Time") Descending
于 2013-10-25T22:57:09.957 回答