/// <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 比较相关推荐

  1. 获取DataRow某列的值的封装

    public class DataHelper     { const string DEFSTR = "";         /// <summary>        ...

  2. DataRow的序列化问题

      来源:CSDN  作者:kroll 在.net里,DataRow类型的对象是不支持序列化的,那么如果在一个需要序列化的对象中含有DataRow类型的字段该怎么办呢?呵呵,幸好Datatable是支 ...

  3. 错误 1 “System.Data.DataRow.DataRow(System.Data.DataRowBuilder)”不可访问,因为它受保护级别限制...

    new DataRow 的方式: DataTable pDataTable = new DataTable();DataRow pRow = new DataRow(); 正确的方式: DataRow ...

  4. java datarow_DataSet DataTable DataRow 深入浅出

    本篇文章适合有一定的基础的人去查看 ,最好学习过一定net 编程基础在来查看此文章. 1.概念 DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖 ...

  5. DataRow复制一行到另一个DataTable

    DataRow复制一行到另一个DataTable 下面两个方法是DataRow复制一行到另一个DataTable的,直接Add会出错"此行已属于另一个表",其实以前就知道怎么做的, ...

  6. DataTable.DataRow的复制

    经常遇到这种错误,"此行已属于另一个表"的错误,导致这个错误的语句如下: dtPriceTable.Rows.InsertAt(aDataRow,i); 或者 dtPriceTab ...

  7. 对DataSet,DataRow,DateTable转换成相应的模型

    /// <summary>/// DataRow 转成 模型/// </summary>/// <typeparam name="T">< ...

  8. DataTable筛选符合条件的DataRow

    得到筛选后的新的DataRow; DataRow[] rows=dt.Select("1=1 and flag <> 1") 清空原DataTable并赋值给新建表 D ...

  9. datagridview当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。

    以下是一个网友的问题,我也遇到了,记得在 更新前  Me.Contract_DesDA.Update(Me.ds.Tables("合同内容列表")) 要 Dim cb As Ole ...

  10. 再不用担心DataRow类型转换和空值了(使用扩展方法解决高频问题)

    在使用DataRow读取数据时,通常会遇到数据可能为Null, 但是又需要转换为如int等其它类型的数据,因此就通常会写这样的代码: if (dr[name] != DBNull.Value & ...

最新文章

  1. powerdesigner逆向工程,从数据库导出PDM
  2. 【约束布局】ConstraintLayout 约束布局 ( 简介 | 引入依赖 | 基本操作 | 垂直定位约束 | 角度定位约束 | 基线约束 )
  3. Kubernetes 中创建 Pod 时集群中到底发生了些什么?
  4. 【PC端vue ui框架学习】vue项目如何使用基于vue的UI框架Element
  5. 那些年伴我一起成长的SAP装备
  6. linux把硬盘当内存,把内存当硬盘使,让你的linux程序运转如飞(在linux下用firefox在线写csdn的blog再也不卡了)...
  7. uva10026-鞋匠的难题
  8. openlayer 图层上下_OpenLayers 3 的图层体系结构
  9. SAP License:SAP软件功能有哪些?
  10. 网络蛋白质组学在计算机中应用,Mumford Shah算法研究及其在拓扑蛋白质组学中的应用...
  11. aix显示服务器ip,AIX系统查看和设置网关和IP配置
  12. 使用 Kubernetes Ingress 对外暴露服务
  13. 百度云不限速下载(Windows、Linux、Mac平台)
  14. 孩子数学成绩不好怎么办_三年级发现孩子数学成绩非常不好,作为家长该怎么办?...
  15. python保留两位小数_python保留小数位的三种实现方法
  16. 成语消消乐java代码_成语消消看-4399成语消消看-成语消消看答案大全
  17. Spring项目启动报Could not resolve placeholder解决
  18. MySQL中SQL语句——DQL(数据查询语句)
  19. 如何求出两个整数的最大公约数
  20. 【Angular】angular2+中没有*ngShow/ng-show,取而代之的是hidden

热门文章

  1. List中英文混合排序
  2. php标签打印源码,C#标签设计打印程序源码
  3. 深度学习对抗生成网络--GAN
  4. dialog弹出时,点击dialog之外的地方时,dialog不消失。
  5. 程序员,你到底有多忙?
  6. SpringMVC 视图解析器
  7. mysql-5.7.17-winx64安装文件在哪里_mysql-5.7.17-winx64的安装配置
  8. 五种常见的开源路由器第三方固件测评
  9. Android开发:抽奖转盘的实现
  10. 数据链路层故障诊断与排除