`
javatoyou
  • 浏览: 1016632 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

合并结构相同,不同,或多个DataTable

 
阅读更多
======下面是转贴的,结构相同的DataTable合并有个方法很简单的
====== DataTable.Merge (DataTable)将指定的DataTable与当前的 DataTable 合并
  1. //两个结构一样的DT合并
  2. DataTableDataTable1=newDataTable();
  3. DataTableDataTable2=newDataTable();
  4. DataTablenewDataTable=DataTable1.Clone();
  5. object[]obj=newobject[newDataTable.Columns.Count];
  6. for(inti=0;i<DataTable1.Rows.Count;i++)
  7. {
  8. DataTable1.Rows[i].ItemArray.CopyTo(obj,0);
  9. newDataTable.Rows.Add(obj);
  10. }
  11. for(inti=0;i<DataTable2.Rows.Count;i++)
  12. {
  13. DataTable2.Rows[i].ItemArray.CopyTo(obj,0);
  14. newDataTable.Rows.Add(obj);
  15. }
  16. //两个结构不同的DT合并
  17. ///<summary>
  18. ///将两个列不同的DataTable合并成一个新的DataTable
  19. ///</summary>
  20. ///<paramname="dt1">表1</param>
  21. ///<paramname="dt2">表2</param>
  22. ///<paramname="DTName">合并后新的表名</param>
  23. ///<returns></returns>
  24. privateDataTableUniteDataTable(DataTabledt1,DataTabledt2,stringDTName)
  25. {
  26. DataTabledt3=dt1.Clone();
  27. for(inti=0;i<dt2.Columns.Count;i++)
  28. {
  29. dt3.Columns.Add(dt2.Columns[i].ColumnName);
  30. }
  31. object[]obj=newobject[dt3.Columns.Count];
  32. for(inti=0;i<dt1.Rows.Count;i++)
  33. {
  34. dt1.Rows[i].ItemArray.CopyTo(obj,0);
  35. dt3.Rows.Add(obj);
  36. }
  37. if(dt1.Rows.Count>=dt2.Rows.Count)
  38. {
  39. for(inti=0;i<dt2.Rows.Count;i++)
  40. {
  41. for(intj=0;j<dt2.Columns.Count;j++)
  42. {
  43. dt3.Rows[i][j+dt1.Columns.Count]=dt2.Rows[i][j].ToString();
  44. }
  45. }
  46. }
  47. else
  48. {
  49. DataRowdr3;
  50. for(inti=0;i<dt2.Rows.Count-dt1.Rows.Count;i++)
  51. {
  52. dr3=dt3.NewRow();
  53. dt3.Rows.Add(dr3);
  54. }
  55. for(inti=0;i<dt2.Rows.Count;i++)
  56. {
  57. for(intj=0;j<dt2.Columns.Count;j++)
  58. {
  59. dt3.Rows[i][j+dt1.Columns.Count]=dt2.Rows[i][j].ToString();
  60. }
  61. }
  62. }
  63. dt3.TableName=DTName;//设置DT的名字
  64. returndt3;
  65. }
  66. //多个结构相同的DataTable合并
  67. publicDataTableGetAllEntrysDataTable()
  68. {
  69. DataTablenewDataTable=GetEntrysDataTable(0).Clone();
  70. object[]obj=newobject[newDataTable.Columns.Count];
  71. for(inti=0;i<entryGroups.GetEntryGroupCount();i++)
  72. {
  73. for(intj=0;j<GetEntrysDataTable(i).Rows.Count;j++)
  74. {
  75. GetEntrysDataTable(i).Rows[j].ItemArray.CopyTo(obj,0);
  76. newDataTable.Rows.Add(obj);
  77. }
  78. }
  79. returnnewDataTable;
  80. }
分享到:
评论

相关推荐

    DataTable多列合并问题轻松搞定

    问题背景: 在做考试系统手动生成试卷部分时由于题库的表结构不相同,导致同样的Gridview(已模板化后的,其结构已固定)在显示时不能同时两种不同结构的数据。如GridView结构如下所示: 这种固定的格式显示的是以...

    java源码包---java 源码 大量 实例

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

    java源码包2

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用...

    java源码包3

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用...

    java源码包4

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用...

    JAVA上百实例源码以及开源项目

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    JAVA上百实例源码以及开源项目源代码

    然后服务器处于等待状态 第二步:运行LoginData.java 启动(客户端)登陆界面 输入用户名 ip为本机localhost 第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在...

    一个ViewGrid控件

    2、对多个字段进行复合排序;升序、降序的排序状态提示 使用方法(设置SmartSorting复合属性): AllowSortTip - 是否启用排序提示 AllowMultiSorting - 是否启用复合排序 SortAscImageUrl - 升序提示图片的URL...

    C#编程经验技巧宝典

    24 &lt;br&gt;0050 using关键字的用法 24 &lt;br&gt;0051 变量的作用域 25 &lt;br&gt;2.5 其他 26 &lt;br&gt;0052 有效使用this对象 26 &lt;br&gt;0053 如何声明变量 26 &lt;br&gt;0054 如何声明相同类型的多个变量 26 ...

    gridview扩展

    控件使用 1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式 使用方法(设置属性): MouseOverCssClass - 鼠标经过行时行的 CSS 类名 &lt;br&gt;2、对多个字段进行复合排序;升序、降序的...

    C#开发经验技巧宝典

    第18章 程序应用控制 483 ...0990 合并具有相同数据表结构的查询结果 575 0991 使用DataTable进行数据检索 575 0992 使用DataView对数据进行检索和排序 576 0993 使用DataSet建立DataTable明细表 576

Global site tag (gtag.js) - Google Analytics