您的位置:首页 > 其它

将两个列不同的DataTable合并成一个新的DataTable

2012-10-31 09:09 477 查看
//两个结构不同的DT合并

/// <summary>

/// 将两个列不同的DataTable合并成一个新的DataTable

/// </summary>

/// <param name="dt1">表1</param>

/// <param name="dt2">表2</param>

/// <param name="DTName">合并后新的表名</param>

/// <returns></returns>

public static DataTable UniteDataTable(DataTable dt1, DataTable dt2, string DTName)

{

DataTable dt3 = dt1.Clone();

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

{

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

}

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

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

{

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

dt3.Rows.Add(obj);

}

if (dt1.Rows.Count >= dt2.Rows.Count)

{

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

{

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

{

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

}

}

}

else

{

DataRow dr3;

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

{

dr3 = dt3.NewRow();

dt3.Rows.Add(dr3);

}

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

{

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

{

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

}

}

}

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

return dt3;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: