DataSet.Merge与DataTable操作小技巧

对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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值