比较两个DataTable内容是否相等,先是比数量,数量相等就比内容

    #region 比较两个DataTable内容是否相等,先是比数量,数量相等就比内容
        ///   <summary>
        ///   比较两个DataTable内容是否相等,先是比数量,数量相等就比内容
        ///   </summary>
        ///   <param   name= "dtA "> </param>
        ///   <param   name= "dtB "> </param>
        public static bool CompareDataTable(DataTable dtA, DataTable dtB)
        {
            if (dtA.Rows.Count == dtB.Rows.Count)
            {
                if (CompareColumn(dtA.Columns, dtB.Columns))
                {
                    //比内容
                    for (int i = 0; i < dtA.Rows.Count; i++)
                    {
                        for (int j = 0; j < dtA.Columns.Count; j++)
                        {
                            if (!dtA.Rows[i][j].Equals(dtB.Rows[i][j]))
                            {
                                return false;
                            }
                        }
                    }
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        ///   <summary>
        ///   比较两个字段集合是否名称,数据类型一致
        ///   </summary>
        ///   <param   name= "dcA "> </param>
        ///   <param   name= "dcB "> </param>
        ///   <returns> </returns>
        private static bool CompareColumn(System.Data.DataColumnCollection dcA, System.Data.DataColumnCollection dcB)
        {
            if (dcA.Count == dcB.Count)
            {
                foreach (DataColumn dc in dcA)
                {
                    //找相同字段名称
                    if (dcB.IndexOf(dc.ColumnName) > -1)
                    {
                        //测试数据类型
                        if (dc.DataType != dcB[dcB.IndexOf(dc.ColumnName)].DataType)
                        {
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }
                }
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion

原文地址:点击打开链接

时间: 2024-09-19 09:05:49

比较两个DataTable内容是否相等,先是比数量,数量相等就比内容的相关文章

Winform 两个DataTable把相同数据合并,统计数量相加!

问题描述 我是执行了两个存储过程,获得2个DataTable,然后通过dt.Merge把两个dt合并起来了,但是里面的数据没有叠加!我希望的结果是相同的数据只显示一条,统计部分数据叠加起来!希望大家教下我如何做效率高一些!最好是贴出代码来!谢谢 解决方案 解决方案二:引用楼主jking1025的回复: 我是执行了两个存储过程,获得2个DataTable,然后通过dt.Merge把两个dt合并起来了,但是里面的数据没有叠加!我希望的结果是相同的数据只显示一条,统计部分数据叠加起来!希望大家教下我如

比较两个DataTable是否相等(网上流传的通病)

我写这篇文章只是想告诉大家,网上流传最广的并不一定是正确的. 我想要是Google搜一下,如何判断两个DataTable相等,出来的最多的是下面的方法. 代码 private bool ValueEquals(DataTable objA,DataTable objB) { if(objA != null && objB != null) { if(objA.Rows.Count != objB.Rows.Count) { return false; } if(objA.Columns.C

C#中连接两个DataTable,相当于Sql的InnerJoin

    在下面的例子中实现了3个Join方法,其目的是把两个DataTable连接起来,相当于Sql的Inner Join方法,返回DataTable的所有列.如果两个DataTable中的DataColumn有重复的话,把第二个设置为ColumnName+"_Second",下面是代码,希望对大家有所帮助.using System;using System.Data; namespace WindowsApplication1{    public class SQLOps    {

在C#中把两个DataTable连接起来

作者:浪漫十一狼在下面的例子中实现了3个Join方法,其目的是把两个DataTable连接起来,相当于Sql的Inner Join方法,返回DataTable的所有列.如果两个DataTable中的DataColumn有重复的话,把第二个设置为ColumnName+"_Second",下面是代码,希望对大家有所帮助.using System;using System.Data; namespace WindowsApplication1{    public class SQLOps 

在C#中把两个DataTable连接起来,相当于Sql的Inner Join方法

在下面的例子中实现了3个Join方法,其目的是把两个DataTable连接起来,相当于Sql的Inner Join方法,返回DataTable的所有列.如果两个DataTable中的DataColumn有重复的话,把第二个设置为ColumnName+"_Second",下面是代码,希望对大家有所帮助.using System;using System.Data; namespace WindowsApplication1{    public class SQLOps    {    

C#中把两个DataTable连接起来,相当于Sql的Inner Join方法

在下面的例子中实现了3个Join方法,其目的是把两个DataTable连接起来,相当于Sql的Inner Join方法,返回DataTable的所有列.  如果两个DataTable中的DataColumn有重复的话,把第二个设置为ColumnName+"_Second",下面是代码,希望对大家有所帮助.  using System;  using System.Data;  namespace WindowsApplication1  {      public class SQLO

jsp如何实现两个输入框,输入一个另一个自动填充第一个的内容。

问题描述 jsp如何实现两个输入框,输入一个另一个自动填充第一个的内容. 如题,我的jsp页面中 有2个输入框 我要在第一个框a 上传一个图片,a框里有了图片的名称带后缀名的. 如何实现第二个框b b的框里自动填上了 第一个框a的值不带后缀名的. 如 我a上传图片名为 asdf.jpg b框里就显示为 asdf. 本页面有 js 解决方案 先写两个input表单,然后在第一个表单里加个事件,比如onblur 焦点离开触发事件,然后这个事件触发函数,里面用js或者jquery写 把这个input的

求两个DataTable的差集

问题描述 哪位大侠有比较好的方法可以很快的求出两个DataTable的差集啊. 解决方案 解决方案二:循环操作记录求取.解决方案三:不是很明白你说的意思能再说具体点吗?解决方案四:循环记录的方式效率太低了,如果两个表每个表都有上万的数据呢,你计算一下这个计算量是多大呀.我的意思是说有A,B两张表,假设:A表里有1,2,3,4,5这5条数据,B表里有1,2,4这三条数据,我们可以用什么方法最快的把3,5这两条数据取出来.解决方案五:这个要设一个主键,如id,确保唯一,然后用notin做筛选现在假设

把两个datatable里的不同的数据找出来,求赐教,谢谢

问题描述 如题,比如我有两个datatable一个A1一个A2.A1里的数据A2里都有,A2里的数据比A1里可能没有,把他们不一样的部分取出来 解决方案 解决方案二:快点来人啊,在线等,谢谢解决方案三:将A2里头的A1的部分移除掉不就是了吗,这个很难吗?解决方案四:这社区没人了啊解决方案五:DataTabledt1=newDataTable();DataTabledt2=newDataTable();IEqualityComparer<DataRow>comparer=null;//需要自己实