设为首页 加入收藏

TOP

多个DataTable的合并成一个新表 (二)
2014-11-23 19:38:43 来源: 作者: 【 】 浏览:38
Tags:多个 DataTable 合并 一个
ns.Add(DataTable2.Columns[i].ColumnName);

}

object[] obj = new object[newDataTable.Columns.Count];

//添加DataTable1的数据

for (int i = 0; i < DataTable1.Rows.Count; i++)

{

DataTable1.Rows[i].ItemArray.CopyTo(obj, 0);

newDataTable.Rows.Add(obj);

}

if (DataTable1.Rows.Count >= DataTable2.Rows.Count)

{

for (int i = 0; i < DataTable2.Rows.Count; i++)

{

for (int j = 0; j < DataTable2.Columns.Count; j++)

{

newDataTable.Rows[i][j + DataTable1.Columns.Count] = DataTable2.Rows[i][j].ToString();

}

}

}

else

{

DataRow dr3;

//向新表中添加多出的几行

for (int i = 0; i < DataTable2.Rows.Count - DataTable1.Rows.Count; i++)

{

dr3 = newDataTable.NewRow();

newDataTable.Rows.Add(dr3);

}

for (int i = 0; i < DataTable2.Rows.Count; i++)

{

for (int j = 0; j < DataTable2.Columns.Count; j++)

{

newDataTable.Rows[i][j + DataTable1.Columns.Count] = DataTable2.Rows[i][j].ToString();

}

}

}

newDataTable.TableName = DTName; //设置DT的名字

return newDataTable;

方法(2)先添加行数多的表。其实我们也可以先判断哪个表的行数多,就先添加哪个表,然后再添加行少的表就可以了。

///

/// 将两个列不同(结构不同)的DataTable合并成一个新的DataTable

///

/// 表1

/// 表2

/// 合并后新的表名

/// 合并后的新表

private DataTable UniteDataTable2(DataTable DataTable1, DataTable DataTable2, string DTName)

{

DataTable newDataTable = new DataTable();

if (DataTable1.Rows.Count > DataTable2.Rows.Count)

{

newDataTable = FillData(DataTable1, DataTable2);

}

else

{

newDataTable = FillData(DataTable2, DataTable1);

}

newDataTable.TableName = DTName; //设置DT的名字

return newDataTable;

}

private DataTable FillData(DataTable dt1, DataTable dt2)

{

//克隆DataTable1的结构

DataTable newDataTable = dt1.Clone();

for (int i = 0; i < dt2.Columns.Count; i++)

{

//再向新表中加入DataTable2的列结构

newDataTable.Columns.Add(dt2.Columns[i].ColumnName);

}

object[] obj = new object[newDataTable.Columns.Count];

//添加DataTable1的数据

for (int i = 0; i < dt1.Rows.Count; i++)

{

dt1.Rows[i].ItemArray.CopyTo(obj, 0);

newDataTable.Rows.Add(obj);

}

for (int i = 0; i < dt2.Rows.Count; i++)

{

for (int j = 0; j < dt2.Columns.Count; j++)

{

newDataTable.Rows[i][j + dt1.Columns.Count] = dt2.Rows[i][j].ToString();

}

}

return newDataTable;

}

作者 June拼搏

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sqlite3简介及常用查询语句的应用 下一篇mysql数据库(基础)笔记

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: