1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. DataTable dt = new DataTable();
  4. dt.Columns.Add("col");
  5. for (int i = 5; i >0;i=i-2)
  6. {
  7. DataRow row = dt.NewRow();
  8. row["col"] = "车" + i;
  9. dt.Rows.Add(row);
  10. }
  11. DataTable dt1 = new DataTable();
  12. dt1.Columns.Add("col1");
  13. for (int i = 1; i <= 4; i++)
  14. {
  15. DataRow row = dt1.NewRow();
  16. row["col1"] = "车" + i;
  17. dt1.Rows.Add(row);
  18. }
  19. DataTable resultTable = cf(dt,dt1);
  20. Response.Write("重复:");
  21. for (int i = 0; i < resultTable.Rows.Count; i++)
  22. Response.Write(resultTable.Rows[i]["col"].ToString());
  23. Response.Write("<br/>");
  24. resultTable = bcfbyd1tod2(dt, dt1);
  25. Response.Write("不重复 d1tod2:");
  26. for (int i = 0; i < resultTable.Rows.Count; i++)
  27. Response.Write(resultTable.Rows[i]["col"].ToString());
  28. Response.Write("<br/>");
  29. resultTable = bcfbyd2tod1(dt, dt1);
  30. Response.Write("不重复 d2tod1:");
  31. for (int i = 0; i < resultTable.Rows.Count; i++)
  32. Response.Write(resultTable.Rows[i]["col"].ToString());
  33. Response.Write("<br/>");
  34. }
  35. /// <summary>
  36. /// 取重复
  37. /// </summary>
  38. /// <param name="dt"></param>
  39. /// <param name="dt1"></param>
  40. /// <returns></returns>
  41. private DataTable cf(DataTable dt, DataTable dt1)
  42. {
  43. DataTable myTable = dt.Clone();
  44. for (int i = 0; i < dt.Rows.Count; i++)
  45. {
  46. DataRow[] sRow= dt1.Select("col1='"+dt.Rows[i]["col"].ToString()+"'");
  47. if (sRow.Length > 0)
  48. {
  49. DataRow row= myTable.NewRow();
  50. row["col"] = dt.Rows[i]["col"].ToString();
  51. myTable.Rows.Add(row);
  52. }
  53. }
  54. return myTable;
  55. }
  56. /// <summary>
  57. /// 不重复d1tod2
  58. /// </summary>
  59. /// <param name="dt"></param>
  60. /// <param name="dt1"></param>
  61. /// <returns></returns>
  62. private DataTable bcfbyd1tod2(DataTable dt, DataTable dt1)
  63. {
  64. DataTable myTable = dt.Clone();
  65. for (int i = 0; i < dt.Rows.Count; i++)
  66. {
  67. DataRow[] sRow = dt1.Select("col1='" + dt.Rows[i]["col"].ToString() + "'");
  68. if (sRow.Length == 0)
  69. {
  70. DataRow row = myTable.NewRow();
  71. row["col"] = dt.Rows[i]["col"].ToString();
  72. myTable.Rows.Add(row);
  73. }
  74. }
  75. return myTable;
  76. }
  77. /// <summary>
  78. /// 不重复d1tod2
  79. /// </summary>
  80. /// <param name="dt"></param>
  81. /// <param name="dt1"></param>
  82. /// <returns></returns>
  83. private DataTable bcfbyd2tod1(DataTable dt, DataTable dt1)
  84. {
  85. DataTable myTable = dt.Clone();
  86. for (int i = 0; i < dt1.Rows.Count; i++)
  87. {
  88. DataRow[] sRow = dt.Select("col='" + dt1.Rows[i]["col1"].ToString() + "'");
  89. if (sRow.Length == 0)
  90. {
  91. DataRow row = myTable.NewRow();
  92. row["col"] = dt1.Rows[i]["col1"].ToString();
  93. myTable.Rows.Add(row);
  94. }
  95. }
  96. return myTable;
  97. }
  98. http://blog.csdn.net/yeness/article/details/7817032

两个 DataTable 读取重复数据,dataTable1与dataTable2不同的更多相关文章

  1. 两个 DataTable 读取重复数据

    今天正好用到Excel 导入转换成table , 文件中数据要和数据库里数据进行比对,有重复的抛出重复数据. 和大家分享下,欢迎高手留言指点.有问题可以留言关注! /// <summary> ...

  2. 【转载】C#的Merge方法合并两个DataTable对象的数据

    在C#中的Datatable类中,可以使用DataTable类的Merge方法对两个相同结构的DataTable对象进行求并集运算,将两个DataTable对象的数据行合并到其中一个DataTable ...

  3. C# 两个datatable中的数据快速比较返回交集或差集[z]

    最基本的写法无非是写多层foreach循环,数据量多了,循环的次数是乘积增长的. 这里推荐使用Except()差集.Intersect()交集,具体性能没有进行对比. 如果两个datatable的字段 ...

  4. C# 两个datatable中的数据快速比较返回交集或差集

    转自: https://www.cnblogs.com/lacey/p/5893380.html 如果两个datatable的字段完全一致的话,可以直接使用Except,Intersect //Exc ...

  5. C# 高效过滤DataTable 中重复数据方法

    使用DataView,然后设置ToTable,设置几个字段和一个布尔值,表示这些字段作为一个整体,在这个表内不允许重复,示例代码: namespace A { class Program { stat ...

  6. C# DataTable 去重复数据方法

    //获取dt中Id,Value 2个字段不重复的数据 newDt = dt.DefaultView.ToTable(true, "Id","Value" );

  7. c# 利用IEqualityComparer接口去除DataTable重复数据

    IEqualityComparer主要适用于定义方法以支持对象的相等比较.可以实现集合的自定义相等比较.即,您可以创建自己的相等定义,并指定此定义与接受 IEqualityComparer 接口的集合 ...

  8. 重复数据删除(De-duplication)技术研究(SourceForge上发布dedup util)

    dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码正在不断更新中.该工具生成 ...

  9. JS求多个数组的重复数据

    今天朋友问了我这个问题:JS求多个数组的重复数据 注: 1.更准确的说是只要多个数组中有两个以上的重复数据,那么这个数据就是我需要的 2.单个数组内的数据不存在重复值(当然如果有的话,你可以去重) 3 ...

随机推荐

  1. Power-Aware GateSim Debug

    For PAG debug, the following steps may be useful. 1. Get correct netlists from PD which contain powe ...

  2. socket模块其他用法

    1.socket模块的其他方法 服务端套接字函数 s.bind() 绑定(主机,端口号)到套接字 s.listen() 开始TCP监听 s.accept() 被动接受TCP客户的连接,(阻塞式)等待连 ...

  3. 织梦DedeCms技术资料

    Dedecms调用文章发布时间的方法 11-20 样式 ([field:pubdate function='strftime("%m-%d",@me)'/]) May 15, 20 ...

  4. BZOJ 1069 Luogu P4166 最大土地面积 (凸包)

    题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=1069 (luogu)https://www.luogu.org/probl ...

  5. 【TIL】today i learned

    20191115 JSON解析网站 https://www.json.cn/    方便简洁,左侧放JSON表达式,右侧自动解析 联系英文盲打网站 https://www.keybr.com/  字母 ...

  6. python之新式类与经典类

    经典类与新式类 经典类:P 或 P()--深度查找,向上查父节点 新式类 :P(object)---广度查找,继承object,新式类的方法较多  

  7. nginx中lua主动设置Content-Length

    最近发现lua调用ngx.say和ngx.print 默认返回的HTTP头是trunk模式的,通常情况下是很好的,没有什么问题:但是要提供给其他人回源的时候就有问题了,特别是我要给slice模块回源, ...

  8. acl权限设置

    acl权限分配 1.setfacl设置文件或目录的权限 setfacl -m u:user:rw text setfacl -m user:rwx /mnt 2.getfacl查看文件或目录的权限 g ...

  9. (C++C#类型互转工具)使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明

    在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明 - 天,没 ...

  10. 前端Node项目发布流程

    最近在做前端的发布流程,发布流程的主要实现以下几个方面: 构建:包括JavaScript.css.html等的压缩,以及版本控制,利用md5生成版本号替换文件引用,实现长缓存策略. 发布:输出新版本的 ...