【问题标题】:Sort Datatable in vb.net with linq by Column index使用 linq 按列索引对 vb.net 中的数据表进行排序
【发布时间】:2012-03-23 15:25:59
【问题描述】:

我需要对数据表进行排序。我用 linq 做这个例子

Dim query = From c In dt.AsEnumerable _
              Order By c.Field(Of DateTime?)("LastPurchaseDate"), _
                       c.Field(Of String)("LastName") Descending
            Dim dv As DataView = query.AsDataView

但我的问题是我需要对字段进行排序,而不是通过传递列的名称,而是传递该列的索引。有什么办法吗?

【问题讨论】:

  • 好吧,我的名字有问题,因为我使用的是希腊名字,这有点把代码搞砸了。当我使用英语时,它工作正常
  • 我也在这样做,Dim query = From c In dt.AsEnumerable _ Order By c.Field(Of String)(10) Ascending Dim dv As DataView = query.AsDataView 但它没有当我收集 dv.Table 时,它​​的工作保持不变

标签: .net vb.net linq


【解决方案1】:
Dim dt As New DataTable
Dim orderedby = From p As DataRow In dt.Rows Order By p.Item(0) Ascending, 
p.Item(1) Ascending 
Select p cast p as datarow

【讨论】:

    【解决方案2】:

    最后我设法使用数据表的克隆方法做到了这一点。

        Dim DataTableNew As DataTable = New DataTable
        DataTableNew = dt.Clone
        Dim query = (From c In dt.AsEnumerable Order By c.Field(Of String)(12) Ascending)
        query.CopyToDataTable(DataTableNew, LoadOption.OverwriteChanges)
    

    【讨论】:

      猜你喜欢
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      相关资源
      最近更新 更多