2012-03-23 13 views
1

データテーブルをソートする必要があります。私は、この例データテーブルを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 

LINQでそれを行うしかし、私の問題は、私はない列の名前が、それのインデックスを渡すことによって、フィールドをソートする必要があるということです。方法はありますか?

+0

よく私はギリシャ語の名前を使用しているので、コードを吹く並べ替えの名前のトラブルがあります。私は英語を使用すると、私は、また 薄暗いクエリを、これをやっている – themis

+0

それはdt.AsEnumerableで_ (列の)c.Field並び順(10)昇順 薄暗いDV Cからの=正常に動作としてのDataView = query.AsDataView が、それは私がdvを収集するとき、それは同じ種類を維持しない動作しません。 – themis

答えて

3

薄暗いdtの

薄暗いorderedby(0)上昇、p.Item(1)を選択したp

昇順データーとしてキャストp :)

+0

hehe correct、それはtyの仕事、ギリシャからおはよう – themis

2

最後に、データテーブルのクローンメソッドを使用してこれを行うことができました。 dt.Rows秩序p.Itemで= PからのDataRowとして

新しいDataTableのよう
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) 
+0

スニペットありがとう!それは完全に動作します! – bgmCoder

関連する問題