日期:2014-05-20  浏览次数:20897 次

如何对dataTable 排序?
因项目需要现要对DataTable排序,我想到了用DataView,然后在把dataview转换为dataTable(项目一定需要一个dataTable).代码如下:
  Dim   row   As   DataRow
'   建立一个表,该表只有两列,(我是用的强类型)ds   是数据集的名称,sortTable是表的名称
                row   =   ds.sortTable.NewRow()
                row(0)   =   "m1001 "
                row(1)   =   80
                ds.sortTable.Rows.Add(row)
                Dim   row1   As   DataRow
                row1   =   ds.sortTable.NewRow()
                row1(0)   =   "a1002 "
                row1(1)   =   90
                ds.sortTable.Rows.Add(row1)
                Dim   row2   As   DataRow
                row2   =   ds.sortTable.NewRow()
                row2(0)   =   "m1003 "
                row2(1)   =   80
                ds.sortTable.Rows.Add(row2)
'   结束建表。


                Dim   view   As   DataView
                view   =   ds.sortTable.DefaultView
               
                view.Sort   =   "name   ASC " '设置view的属性


                Dim   tab   As   DataTable   =   view.Table
              ds.Tables.Remove(ds.sortTable) '因为sortTable已经存在于ds中,所以必须先移出才能将表   tab添加进ds中
                ds.Tables.Add(tab)


问题:不知道我在哪一步出错,ds中的sortTable,并为排序。
或者还有别的思路可以对dataTable排序,排序后一定要得到一个dataTable,因为我还有很多后续操作。

------解决方案--------------------
DataView的Table属性并不是新的Table,是原始的DataTable。
如果想把DataView中的数据生成新的DataTable,请使用DataView中的ToTable方法,不过这个方法是2.0中新加的。
------解决方案--------------------
DataView的Table属性并不是新的Table,是原始的DataTable。
如果想把DataView中的数据生成新的DataTable,请使用DataView中的ToTable方法,不过这个方法是2.0中新加的。
ToTable是根据DataView中的过滤和排序创建了一个新的DataTable,与原来的DataTable已经不是一个对象。