【转载】C#的Merge方法合并两个DataTable对象的数据
在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特定位置插入一条数据
(5)c#通过indexof方法获取某一列在datatable中的索引位置
(6)c#通过contains方法判断datatable中是否存在某个列名
(9)c#通过remove方法移除datatable中的某一列数据
备注:原文转载自博主个人站it技术小趣屋,原文链接为c#的merge方法合并两个datatable对象的数据_it技术小趣屋。
博主个人技术交流群:960640092,博主微信公众号如下: