博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原来DataTable的Distinct竟如此简单!
阅读量:5043 次
发布时间:2019-06-12

本文共 952 字,大约阅读时间需要 3 分钟。

DataView可以帮我们直接获取Distinct数据,

DataTable dataTable;DataView dataView = dataTable.DefaultView;

DataTable dataTableDistinct = dataView.ToTable(true,"FieldName1","FieldName2","...");

//注:其中ToTable()的第一个参数为是否DISTINCT

DataTable MyTable = ds.Tables[2]; //ds为数据集

DataTable dtClone = MyTable.Clone();  //创建新表
DataView dv = new DataView(dtClone);  //用于查找
dv.Sort = "Item";
foreach(DataRow dr in MyTable.Rows)   //单循环, 效率高一点
{
  int rowIndex = dv.FindRow(dr["Item"]);
  if (rowIndex == -1)
  {
    dtClone.ImportRow(dr);  //添加行
    dtClone.Rows[dtClone.Rows - 1] ["Quantity"] = (decimal)MyTable.Compute("Sum(Quantity)", string.Format("Item = '{0}'", dr["Item"].ToString()); //合计
  }
}
dtClone.AcceptChanges();
ds.Tables.Remove(MyTable);  //删除旧表
ds.Tables.Add(dtClone);     //添加新表

dtClone.Rows[dtClone.Rows.Count - 1] ["Quantity"] = (decimal)MyTable.Compute("Sum(Quantity)", string.Format("Item = '{0}'", dr["Item"].ToString()); //合计

转载于:https://www.cnblogs.com/Unrmk-LingXing/p/4081957.html

你可能感兴趣的文章
使用Linux的命令行工具做简单的文本分析
查看>>
远程调试ASP .NET和Silverlight
查看>>
线程的概念
查看>>
360极速模式(Chrome内核)下由ashx输出的JavaScript代码不起作用
查看>>
Ubuntu 开机启动是出现 grub rescue 解决办法
查看>>
python 2.4 的字符串转时间(日期减法取间隔时间)
查看>>
2017.3.9下午
查看>>
centos彻底删除文件夹、文件命令
查看>>
期末作品
查看>>
DevExpress XtraGrid网格控件示例五:验证终端用户输入的数据
查看>>
读书笔记week1——涂涵越
查看>>
Java成语接龙
查看>>
邮件中的商务英语
查看>>
win 7 IIS 配置
查看>>
2017年4月20日
查看>>
linux命令:read
查看>>
Cocos Creater学习笔记2 - 简单的事件机制
查看>>
XP重装后磁盘拒绝访问和无法访问加密文件夹
查看>>
ZooKeeper-API CURD
查看>>
git 配置
查看>>