在c#中的datatable类中,可以使用datatable类的merge方法对两个相同结构的datatable对象进行求并集运算,将两个datatable对象的数据行合并到其中一个datatable变量中,或者说往其中一个datatable对象中写入另一个datatable对象的所有数据行。下列例子中使用到datatable.clone方法,datatable.clone方法用于赋值datatable的结构信息,包括所有 datatable 架构和约束。

merge方法的签名为:void merge(datatable table);参数table代表被合并的datatable对象变量。

举例如下,将newdt1对象的所有数据合并到datadt对象中,具体代码如下:

          datatable datadt = new datatable();

            datadt.columns.add(new datacolumn() { columnname = "name" });
            datadt.columns.add(new datacolumn() { columnname = "id" });
            datadt.columns.add(new datacolumn() { columnname = "memo", datatype=typeof(string) });

            datarow newrow = datadt.newrow();
            newrow["name"] = "李四";
            newrow["id"] = 22;
            newrow["memo"] = "后续新增";
            datadt.rows.add(newrow);  

            
            var newdt1 = datadt.clone();//通过clone方法快速复制datadt的结构信息

            datarow inserdatarow = newdt1.newrow();//根据newdt1的结构创建一个行对象datarow
            inserdatarow["name"] = "王五";
            inserdatarow["id"] = 23;
            inserdatarow["memo"] = "第一行";
            newdt1.rows.insertat(inserdatarow, 0);//往newdt1对象中写入一行数据

            datadt.merge(newdt1);//将newdt1表格中的数据合并到datadt表格中。

上述程序代码执行完毕之后,我们可以看到datadt中存在两条数据,一条为name=”张三”的,另一个为name=”李四”的,即成功将newdt1表格中的数据合并到datadt表格中。

 

更多的datatable的操作文章可以参考:

(1)c#的datatable类clone及copy方法的区别

(2)c#通过clone方法快速创建相同架构的datatable

(3)c#通过insertat方法在datatable特定位置插入一条数据

(4)c#通过copy方法快速复制datatable对象

(5)c#通过indexof方法获取某一列在datatable中的索引位置

(6)c#通过contains方法判断datatable中是否存在某个列名

(7)c#手动往datatable中末尾新增一行数据

(8)c#通过遍历datatable的列获取所有列名

(9)c#通过remove方法移除datatable中的某一列数据

(10)c#如何往datatable中新增一个数据列

(11)c#通过rows.count属性获取总行数

(12)c#中遍历datatable中的数据行

(13)c#中手动创建一个datatable并写入数据

 

备注:原文转载自博主个人站it技术小趣屋,原文链接为c#的merge方法合并两个datatable对象的数据_it技术小趣屋。

博主个人技术交流群:960640092,博主微信公众号如下: