关键词搜索

源码搜索 ×
×

C# DataRow 比较

发布2015-10-09浏览4397次

详情内容

  1. /// <summary>
  2. /// dataRow比较
  3. /// </summary>
  4. /// <param name="drA"></param>
  5. /// <param name="drB"></param>
  6. /// <param name="columnNames">需要比较的列名称</param>
  7. /// <returns></returns>
  8. public static bool DataRowCompare(DataRow drA, DataRow drB, string[] columnNames)
  9. {
  10. bool flag = false;
  11. //DataRow 中需要比较的列排序
  12. ColumnSort(drA, columnNames);
  13. ColumnSort(drB, columnNames);
  14. foreach (DataColumn dcA in drA.Table.Columns)
  15. {
  16. if (columnNames.Contains(dcA.ColumnName))
  17. {
  18. foreach (DataColumn dcB in drB.Table.Columns)
  19. {
  20. if (columnNames.Contains(dcB.ColumnName))
  21. {
  22. if (dcB.ColumnName == dcA.ColumnName)//列名比较
  23. {
  24. //类型比较
  25. if (dcB.DataType != dcA.DataType)
  26. {
  27. flag = false;
  28. break;
  29. }
  30. //值比较
  31. else if (CompareObject(drA[dcB.ColumnName], drB[dcB.ColumnName]))
  32. {
  33. flag = true;
  34. break;
  35. }
  36. }
  37. }
  38. }
  39. }
  40. }
  41. return flag;
  42. }
  43. /// <summary>
  44. /// 按照数组中列名顺序排序
  45. /// </summary>
  46. /// <param name="drA"></param>
  47. /// <param name="columnNames">按照数组中列名顺序排序</param>
  48. public static void ColumnSort(DataRow drA, string[] columnNames)
  49. {
  50. //drA 排序
  51. int i = 0;
  52. foreach (string columnName in columnNames)
  53. {
  54. if (drA.Table.Columns.Contains(columnName))
  55. {
  56. drA.Table.Columns[columnName].SetOrdinal(i);
  57. i++;
  58. }
  59. }
  60. }


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

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


深拷贝部分代码:

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


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



相关技术文章

最新源码

下载排行榜

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载