在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,博主微信公众号如下: