• 技术文章 >后端开发 >C#.Net教程

    C# DataRow 比较

    黄舟黄舟2018-05-15 11:15:25原创2141
      /// <summary>
            /// dataRow比较
            /// </summary>
            /// <param name="drA"></param>
            /// <param name="drB"></param>
            /// <param name="columnNames">需要比较的列名称</param>
            /// <returns></returns>
            public static bool DataRowCompare(DataRow drA, DataRow drB, string[] columnNames)
            {
                bool flag = false;
                //DataRow 中需要比较的列排序
                ColumnSort(drA, columnNames);
                ColumnSort(drB, columnNames);
                foreach (DataColumn dcA in drA.Table.Columns)
                {
                    if (columnNames.Contains(dcA.ColumnName))
                    {
                        foreach (DataColumn dcB in drB.Table.Columns)
                        {
                            if (columnNames.Contains(dcB.ColumnName))
                            {
                                if (dcB.ColumnName == dcA.ColumnName)//列名比较
                                {
                                    //类型比较
                                    if (dcB.DataType != dcA.DataType)
                                    {
                                        flag = false;
                                        break;
                                    }
                                    //值比较
                                    else if (CompareObject(drA[dcB.ColumnName], drB[dcB.ColumnName]))
                                    {
                                        flag = true;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
                return flag;
            }
    		     /// <summary>
            /// 按照数组中列名顺序排序
            /// </summary>
            /// <param name="drA"></param>
            /// <param name="columnNames">按照数组中列名顺序排序</param>
            public static void ColumnSort(DataRow drA, string[] columnNames)
            {
                //drA 排序
                int i = 0;
                foreach (string columnName in columnNames)
                {
                    if (drA.Table.Columns.Contains(columnName))
                    {
                        drA.Table.Columns[columnName].SetOrdinal(i);
                        i++;
                    }
                }
            }


    对象比较方法 CompareObject(object objA, object objB):

    C# 对象比较(值类型、引用类型)

    深拷贝部分代码:

    C# 实体类序列化与反序列化一 (XmlSerializer)

    C# 实体类序列化与反序列化二 (DataContractSerializer)

    以上就是C# DataRow 比较 的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:C#,DataRow
    上一篇:C# SQLite数据库 访问封装类 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • c语言中源文件编译后生成什么文件• 应用绝对路径与相对路径• C/C++深度分析• C#中GDI+编程10个基本技巧二• ASP.NET使用Ajax如何返回Json对象的方法具体介绍
    1/1

    PHP中文网