如何对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已经不是一个对象。