比较两个datatable 表并将不同结果合并成一个新的datatable表

huyidao007 2010-04-01 08:57:07
要求:
1.两表结果相同(一个人是历史数据,一个是现网数据)
2.将现网数据与历史数据进行比较,将存在差异的数据列出来。返回需要databtalbe.
3.由于数据访问层封装好了,所以不能用SQL来实现。
4.可以由对方提供方法得到 A,和B表数据
5。现在我要的操作是,对两表进行对比(一行一行对比吗?),建一新表,将对比后组织成新表返回结果。

a 表
id name
1 a
2 b
3 c
b 表
id name
1 c
2 b
3 a
要的结果:
a.id a.name b.id b.name
1 a 1 c
3 c 3 a
...全文
131 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-04-01
  • 打赏
  • 举报
回复
DataTable dt1=new DataTable();
dt1.Columns.Add("ID",typeof(int));
dt1.Columns.Add("Name",typeof(string));
dt1.PrimaryKey=new DataColumn[] { dt1.Columns[0] };

DataTable dt2=new DataTable();
dt2.Columns.Add("ID",typeof(int));
dt2.Columns.Add("MC",typeof(string));

DataTable dt3= dt1.Copy();
dt3.Merge(dt2);


DataTable curDt = dt2.Copy(); //curDt存放合并后的值
if(!curDt.Columns.Cotains("B")) curDt.Columns.Add("B");

for(int r = 0; r < dt2.Rows.Count; r++)
{
DataRow dr = dt2.Rows[r];
string aValue = dr["A"].ToString().ToUpper();
foreach(DataRow tDr in dt1.Rows)
{
string tValue = tDr["A"].ToString().ToUpper();
if(tValue == aValue)
{
curDt.Rows[r]["B"] = tDr["B"];
break;
}
}
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧