看http://topic.csdn.net/t/20060814/10/4947511.html
比如table1的字段为:
UserId Password
Table2的字段为:
UserId Tel
如何将这两个表合并成这样一张表:
UserId Password Tel
DataTable.Merge 只是添加行 不会合并相同字段内的重复
http://msdn2.microsoft.com/zh-cn/library/system.data.datatable.merge.aspx
2楼 在Table中最加列,然后对起赋值即可
#region 有一个相同字段的两个table合并,返回第一张table
public DataTable MergeDataTable(DataTable dt1, DataTable dt2)
{
int i = 0;
int j = 0;
int r1 = dt1.Rows.Count;
int r2 = dt2.Rows.Count;
int c1 = dt1.Columns.Count ;
int c2 = dt2.Columns.Count;
int m1 = 0;//相同字段,判断列名是否相同,标记
int m2 = 0;
int k = -1;//标记dt2是否和dt1有重复列
for (i = 0; i < c2; i++)//相同字段名 判断
{
for (j = 0; j < c1; j++)
{
if (dt1.Columns[j].ToString() == dt2.Columns[i].ToString())
{
m1 = j;
m2 = i;
}
}
}
for (i = 0; i < c2; i++)//添加dt2字段
{
if(i!=m2){
dt1.Columns.Add(dt2.Columns[i].ColumnName);
}
}
c1 = dt1.Columns.Count;//dt1字段改变
for (i = 0; i < r2; i++)
{
for (j = 0; j < r1; j++)
{
if (dt1.Rows[j][m1].ToString() == dt2.Rows[i][m2].ToString())//有相同字段记录,补充dt1记录行
{
int p = c1-1;
for (int q = 0; q < c2; q++)//添加dt2字段
{
if (q != m2)
{
dt1.Rows[j][p] = dt2.Rows[i][q];
p++;
}
}
k = i;//标记
}
}
if (k < 0)//没有相同字段记录,添加dt2记录
{
dt1.ImportRow (dt2.Rows[i]);
}
k = -1;
}
return dt1;
}
#endregion