关闭

DataSet.Merge与DataTable操作小技巧

标签: datasetmerge测试
3545人阅读 评论(3) 收藏 举报
分类:

对DataTable的一些操作,如:想从一个DataTable中抽中一部份DataRow生成另一个DataTable,或是调整DataTable内的Sort(排序)方式等,着实让我头痛一阵子。
今天在无聊中翻看SDK2.0中的DataSet成员表时发现了Merge方法里有一个重载是DataSet.Merge (DataRow[]),作用是可以将DataRow[]直接合并到当前的DataSet中。
我开始作了一下测试。
第一个问题,将从dsA的dtA表中抽取AID>100的记录到dsB的dtA中。
大至语句如下:
dsB.Merge(dsA.Tables["dtA"].select("AID>100",""));
运行完毕后,效果比较满意。dsB中多了一个dtA的表,表内记录就是AID>100的记录。

第二个问题,将dsA中的dtA表内记录排序方式修改为AID desc
大至语句如下:
dsA.Merge(dsA.Tables["dtA"].select("","AID desc"));
结果没什么反应,数据一点变动都没有。是在想不出办法了,只是将dtA表Copy一份后再作了。
大至语句如下:
DataTable dtACopy=dsA.Tables["dtA"].copy();
dsA.Tables.Remove("dtA");
dsA.Merge(dtACopy.select("","AID desc"));
运行结果正是想要的,dtA表内的记录已经按照要求去排序好了。

这样比较适合对DataSet内的表数据分组操作。只是这样来回的Copy Remove Merge会不会代价太大就不知道了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:160587次
    • 积分:2086
    • 等级:
    • 排名:第18360名
    • 原创:49篇
    • 转载:6篇
    • 译文:0篇
    • 评论:110条
    最新评论