获取DataTable字段唯一值(DISTINCT)

        /// <summary>
        
/// 将所选字段的唯一值复制到一个新的 DataTable。 
        
/// <para>如果字段包含 NULL 值,目标表中的记录还包含 NULL 值</para>
        
/// </summary>
        
/// <param name="sourceTable">源数据表</param>
        
/// <param name="filterExpression">检索条件</param>
        
/// <param name="fieldName">唯一值的字段名</param>
        
/// <returns></returns> 
        public DataTable SelectDistinct(DataTable sourceTable, string filterExpression, string fieldName)
        {
            DataTable dt 
= new DataTable(sourceTable.TableName);
            dt.Columns.Add(fieldName, sourceTable.Columns[fieldName].DataType);

            
object lastValue = null;
            
foreach (DataRow dr in sourceTable.Select(filterExpression, fieldName))
            {
                
if (lastValue == null || !(ColumnEqual(lastValue, dr[fieldName])))
                {
                    lastValue 
= dr[fieldName];
                    dt.Rows.Add(
new object[] { lastValue });
                }
            }
            
return dt;
        }
        
private bool ColumnEqual(object A, object B)
        {
            
if (A == DBNull.Value && B == DBNull.Value)
                
return true;
            
if (A == DBNull.Value || B == DBNull.Value)
                
return false;
            
return (A.Equals(B));
        } 

 

转载于:https://www.cnblogs.com/EasyData/archive/2010/01/20/1652173.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梦真的是反的 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源神店通缉令&#xff0c;侵权删&#xff09;

面试官问:怎么保证线程安全在对象内存分配过程中不出问题?emmmm 让我想想

Java一门面向对象的语言&#xff0c;在Java中使用的对象都需要被创建出来&#xff0c;在Java中创建一个对象的方法有很多种&#xff0c;但对象在创建过程中都需要进行内存分配。Java对象内存分配过程保证线程安全&#xff0c;对象的内存分配过程就必须进行同步控制。 对象的内…

.NET 6 预览版 7:新功能已完成 ,将专注于改进

.NET 团队的项目经理 Richard Lander在宣布 .NET 6 Preview 7 时说&#xff1a;“这是 .NET 预览的又一季的结束。”, 中文翻译&#xff1a;.NET 6 预览版 7 发布——最后一个预览版。.NET 6.0 是微软统一 .NET 平台的一个重要版本和第一个 LTS&#xff08;长期支持&#xff09…

要做好性能测试,该掌握些什么?

1. 精通性能测试的基本概念&#xff0c;过程&#xff0c;方法论&#xff0c;了解性能工程&#xff1b; 2. 精通1个商业性能测试工具1个开源性能测试工具&#xff0c;知道工具可以做什么&#xff0c;不可以做什么&#xff0c;以及工具使用中常见的问题和解决思路&#xff1b; 3.…

do...while(0)的妙用

在C中&#xff0c;有三种类型的循环语句&#xff1a;for, while, 和do...while&#xff0c; 但是在一般应用中作循环时&#xff0c; 我们可能用for和while要多一些&#xff0c;do...while相对不受重视。但是&#xff0c;最近在读我们项目的代码时&#xff0c;却发现了do...whil…

Windows server 2003 CA配置(一)

CA:Certificate Authority,证书权威机构,也称为证书颁发机构或认证中心)是PKI中受信任的第三方实体.负责证书颁发、吊销、更新和续订等证书管理任务和CRL发布和事件日志记录等几项重要的任务。首先&#xff0c;主体发出证书申请&#xff0c;通常情况下&#xff0c;主体将生成密…

js堆和栈的区别_几个例子理解不同数据类型的堆栈内存处理

如有错误烦请指正js代码的运行环境浏览器 内核(引擎)nodewebview(hybrid&#xff0c;嵌入到手机app里面&#xff0c;在app里面运行)...下面通过几个例子理解不同数据类型的堆栈内存处理js如何运行(示例1)var a 12;var b a;b 13;console.log(a);浏览器能够运行js代码&#xf…

世界上没有后悔药,时间匆匆,从关注它们开始......

全世界只有3.14 % 的人关注了青少年数学之旅在这个资讯丰富且易获取的时代&#xff0c;越来越多的人不愿意花时间阅读书籍&#xff0c;碎片化阅读成了主流。人们获取的东西多而杂&#xff0c;很难系统、全面。海量信息对人是冲击&#xff0c;更是诱惑。谁不想了解天下奇闻&…

什么?面试官问我Java内存模型!这不得给我加薪?

内存模型的基础 通信  线程之间以何种机制来交换信息 共享内存  隐式通信消息传递  显示通信 同步  程序中用于控制不同线程间操作,发生的相对顺序的机制 共享内存  显式同步消息传递  隐式同步 Java线程线程之间是通过共享内存的方式实现通信的. 内存模型的抽…

使用 Blazor 开发内部后台(四):基于Card组件快速搭建导航首页

James: 本系列为大家介绍如何使用 Blazor 来开发管理后台&#xff0c;有兴趣的朋友欢迎跟着实验&#xff0c;体验 Blazor 开发的高效与乐趣。本系列目录&#xff1a;使用 Blazor 开发内部后台&#xff08;一&#xff09;&#xff1a;认识Blazor使用 Blazor 开发内部后台&#x…

《西河大鼓——酒色财气》(艳桂荣音配像)

《西河大鼓——酒色财气》&#xff08;唱词文本&#xff09;[url]http://qinyezhai.blog.51cto.com/179831/106820[/url]这是艳桂荣先生根据1998年本人录音于2000年由本人配像&#xff0c;时年72岁&#xff01;转载于:https://blog.51cto.com/qinyezhai/106822

LOOP WITH CONTROL 用法

LOOP - WITH CONTROL Syntax 语法LOOP [AT itab INTO wa [CURSOR top_line] [FROM n1] [TO n2]] WITH CONTROL contrl. ... ENDLOOP. Variants: 变式1. LOOP WITH CONTROL contrl. 2. LOOP AT itab CURSOR cur INTO wa [CURSOR top_line] [FROM n1] [TO n2] …

位操作

1. 改变符号&#xff1a;取反1 2. 与0异或保持不变&#xff0c;与-1(0xffffffff)异或相当于取反。 3. 负数右移可以认为是补符号位&#xff08;当然也有机器不是这样子&#xff09;。负数右移31位就是-1. 1 int sign(int n) {2 return ~n 1;3 }4 5 int abs(int n) {6 …

2020年,朋友圈的正确打开方式!

全世界只有3.14 % 的人关注了青少年数学之旅各位读者朋友们大家好 我是你们的小伙伴上流君我们开始不定期做互推了不是广告&#xff0c;根据兴趣关注感谢理解与支持ღ( &#xff65;ᴗ&#xff65; )比心有些人&#xff0c;生活离不开朋友圈。朋友圈是他们展示自我、观察世界的…

因为我把JMM原理讲解了一遍,这给足了我涨薪的底气!

一、什么是JMM&#xff1f; JMM指的是Java内存模型&#xff0c;即 Java Memory Model Java内存模型并不是一种实际存在的东西&#xff0c;而是一种人为形成的约定&#xff0c;是一种概念。 关于JMM&#xff0c;我们需要了解一些相关的同步约定 &#xff1a; 线程在解锁前&…

防腐投加器需要加盐吗_果干、果脯、蜜钱、水果脆片,哪个有营养?你吃对了吗?...

时下&#xff0c;追求健美瘦身的年轻人&#xff0c;常把水果千作为零食、加餐的选择之一。大家认为水果干不仅味道好&#xff0c;富含营养素&#xff0c;而且热量低。还有一些人会把果脯、蜜钱、水果脆片等当作新鲜水果的替代品&#xff0c;用以补充营养一认为果 脯、蜜钱的原料…

.NET6正式版将近,70%开发者或面临技术断层!

过往一周&#xff0c;VS2019 发布了最新V16.11&#xff0c;正式支持热重载&#xff1b;.NET6发布了最后一个预览版Preview7&#xff0c;各大新功能宣告完成&#xff1b;随之C#10的新特性也基本成型&#xff0c;好东西很多&#xff01;各种密集的版本更新&#xff0c;佐证了行业…

谈谈分布式事务(Distributed Transaction)[共5篇]

[第1篇] SOA需要怎样的事务控制方式 在一个基于SOA架构的分布式系统体系中&#xff0c;服务&#xff08;Service&#xff09;成为了基本的功能提供单元&#xff0c;无论与业务流程无关的基础功能&#xff0c;还是具体的业务逻辑&#xff0c;均实现在相应的服务之中。服务对外提…

软件方面的词汇

1 SaaS是Software-as-a-service&#xff08;软件级服务&#xff09; SaaS提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台&#xff0c;并负责所有前期的实施、后期的维护等一系列服务&#xff0c;企业无需购买软硬件、建设机房、招聘IT人员&#xff0c;即…

一只蝙蝠的自述在朋友圈火了:千万不要再吃野味了!

全世界只有3.14 % 的人关注了青少年数学之旅来源&#xff1a;少女兔&#xff08;ID&#xff1a;iiilass&#xff09;、人民日报&#xff08;ID&#xff1a;rmrbwx&#xff09;从营养价值上来看野生动物和家养动物的差别微乎其微既不能延年益寿&#xff0c;也不能青春永驻它们不…