C#合并DataTable
dta111b222c333dt1a1niha0b2nihaic3ni123合并成这样a111niha0b222nihaic333ni123我只要dt1最后一列怎么合并,...
dt
a 1 11
b 2 22
c 3 33
dt1
a 1 niha0
b 2 ni hai
c 3 ni123
合并成这样
a 1 11 niha0
b 2 22 ni hai
c 3 33 ni123
我只要dt1最后一列 怎么合并, 展开
a 1 11
b 2 22
c 3 33
dt1
a 1 niha0
b 2 ni hai
c 3 ni123
合并成这样
a 1 11 niha0
b 2 22 ni hai
c 3 33 ni123
我只要dt1最后一列 怎么合并, 展开
5个回答
展开全部
是用循环来做,但是楼上的是照搬,一点判断都没有,如果数据顺序不一致。那么结果肯定是错的。
DataTable ResultTable=new DataTable();//接收结果
ResultTable.Columns.Add("1");
ResultTable.Columns.Add("2");
ResultTable.Columns.Add("3");
ResultTable.Columns.Add("4");
foreach(DataRow item in dt.Rows)
{
DataRow[] tempRows=dt1.Select("[dt第一列列名]="item[0]);//链接相关数据项
if(tempRows.length>0)
{
DataRow tempRow=ResultTable.NewRow();
tempRow[0]=item[0];//tempRow["1"]=item[0];
tempRow[1]=item[1];
tempRow[2]=item[2];
tempRow[3]=tempRows[0][2];
ResultTable.Rows.add(tempRow);//向结果表添加数据
}
}
这里ResultTable就是你想要的
DataTable ResultTable=new DataTable();//接收结果
ResultTable.Columns.Add("1");
ResultTable.Columns.Add("2");
ResultTable.Columns.Add("3");
ResultTable.Columns.Add("4");
foreach(DataRow item in dt.Rows)
{
DataRow[] tempRows=dt1.Select("[dt第一列列名]="item[0]);//链接相关数据项
if(tempRows.length>0)
{
DataRow tempRow=ResultTable.NewRow();
tempRow[0]=item[0];//tempRow["1"]=item[0];
tempRow[1]=item[1];
tempRow[2]=item[2];
tempRow[3]=tempRows[0][2];
ResultTable.Rows.add(tempRow);//向结果表添加数据
}
}
这里ResultTable就是你想要的
展开全部
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
如果dt1 和 dt2结构相同,又要想办法将dt1和dt2的数据合并到一个datatable中则可以使用如下方法:
1、新建一个DataTable
DataTable dt = new DataTable();
2、是dt的结构和dt1的一样
dt = dt1.Clone();
3、清理一下dt
dt.Rows.Clear();
4、开始存入数据
object[] obj = new object[dt.Columns.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1.Rows[i].ItemArray.CopyTo(obj, 0);
dt.Rows.Add(obj);
}
for (int i = 0; i < dt2.Rows.Count; i++)
{
dt2.Rows[i].ItemArray.CopyTo(obj, 0);
dt.Rows.Add(obj);
}
完成。
dt中的数据就是dt1和dt2的和了。
DataTable dt2 = new DataTable();
如果dt1 和 dt2结构相同,又要想办法将dt1和dt2的数据合并到一个datatable中则可以使用如下方法:
1、新建一个DataTable
DataTable dt = new DataTable();
2、是dt的结构和dt1的一样
dt = dt1.Clone();
3、清理一下dt
dt.Rows.Clear();
4、开始存入数据
object[] obj = new object[dt.Columns.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1.Rows[i].ItemArray.CopyTo(obj, 0);
dt.Rows.Add(obj);
}
for (int i = 0; i < dt2.Rows.Count; i++)
{
dt2.Rows[i].ItemArray.CopyTo(obj, 0);
dt.Rows.Add(obj);
}
完成。
dt中的数据就是dt1和dt2的和了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dt.Merge(dt1)即可。重点是:
1、俩dt的前两列的列名必须相同;
2、俩dt的第1列都设为主键;
3、俩dt的第3列有不同的列名
1、俩dt的前两列的列名必须相同;
2、俩dt的第1列都设为主键;
3、俩dt的第3列有不同的列名
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
像你这种方式的表,只能用循环来实现,类似向外面的例子
foreach (DataRow r in dsExcle.Tables["Tele_Fee"].Rows)
{
DataRow drNew = this.dsFee.Tables["Tele_Fee"].NewRow();
drNew["yearmonth"] = docbody.DocTitle;
drNew["Serial_Number"] = r["Serial_Number"];
drNew["Item_Name"] = r["Item_Name"];
drNew["FEE"] = r["FEE"];
//drNew.ItemArray = r.ItemArray;
this.dsFee.Tables["Tele_Fee"].Rows.Add(drNew);
ic++;
fee += Convert.ToDouble(r["FEE"]);
}
foreach (DataRow r in dsExcle.Tables["Tele_Fee"].Rows)
{
DataRow drNew = this.dsFee.Tables["Tele_Fee"].NewRow();
drNew["yearmonth"] = docbody.DocTitle;
drNew["Serial_Number"] = r["Serial_Number"];
drNew["Item_Name"] = r["Item_Name"];
drNew["FEE"] = r["FEE"];
//drNew.ItemArray = r.ItemArray;
this.dsFee.Tables["Tele_Fee"].Rows.Add(drNew);
ic++;
fee += Convert.ToDouble(r["FEE"]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单,新建一个datatable,然後循环插入新row就行了呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询