用DataTable.Merge()解决了一个排序问题

首先明确一点,DataTable不支持排序
在一个DataTable(dt)中已经存在无序数据,要实现排序,我想到了两个方法:

方法一
可以先构造一个列表(list),按排序顺序存储dt主键列的值; 然后主要是利用DataTable.Merge方法

 1 StrongTypedDataTable tempDt;
 2 //使tempDt具有dt的Schema 和 Constraint
 3 tempDt = new StrongTypedDataTable();
 4 foreach(string key in list)
 5 {
 6    //如果某些列不允许空,则NewRow()->赋key值->再Add(dr).
 7    tempDt.Rows.Add(key, null.);
 8 }
 9 //合并后将维持tempDt中的顺序
10 tempDt.Merge(dt);
11 dt = tempDt;

方法二
思路:DataView支持排序,而DataView对象有方法ToTable,没有尝试过,已经理解ToTable原理或有机会用到的人给个答案吧:)

p.s 猪年第一篇post.

posted @ 2007-03-02 21:24  sinlight23  阅读(1284)  评论(0编辑  收藏  举报