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最后一列 怎么合并,
展开
 我来答
精致又果敢的夜鹰
2013-06-04 · TA获得超过821个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:196万
展开全部
是用循环来做,但是楼上的是照搬,一点判断都没有,如果数据顺序不一致。那么结果肯定是错的。
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就是你想要的
t1009lqy
推荐于2017-09-20 · 超过30用户采纳过TA的回答
知道答主
回答量:166
采纳率:66%
帮助的人:38.1万
展开全部
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的和了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ahdung
2013-06-04 · TA获得超过609个赞
知道小有建树答主
回答量:323
采纳率:100%
帮助的人:265万
展开全部
dt.Merge(dt1)即可。重点是:
1、俩dt的前两列的列名必须相同;
2、俩dt的第1列都设为主键;
3、俩dt的第3列有不同的列名
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
传奇勇者
2013-06-04 · TA获得超过747个赞
知道大有可为答主
回答量:1706
采纳率:75%
帮助的人:803万
展开全部
像你这种方式的表,只能用循环来实现,类似向外面的例子
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"]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xy404750389
2013-06-04 · TA获得超过505个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:147万
展开全部
简单,新建一个datatable,然後循环插入新row就行了呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式