如何比较 结构不同的两个datatable (ID 比较)
比较两个DT的ID相同的插入第三个DT由于数据量很大,所以会很慢有没有别的方法dt3.TableName=dt.TableName;dt3.Columns.Add("楼盘...
比较两个DT的ID 相同的插入第三个DT 由于数据量很大 ,所以会很慢 有没有别的方法
dt3.TableName = dt.TableName;
dt3.Columns.Add("楼盘ID", typeof(string));
dt3.Columns.Add("区县", typeof(string));
dt3.Columns.Add("商圈", typeof(string));
dt3.Columns.Add("楼盘主名", typeof(string));
dt3.Columns.Add("楼盘别名", typeof(string));
dt3.Columns.Add("搜索量", typeof(int));
foreach (DataRow row in dt.Rows)
{
foreach (DataRow row2 in dt2.Rows)
{
if (row["Newcode"].ToString().Trim().Equals(row2["ProjCode"].ToString().Trim()))
{
DataRow dtrow = dt3.NewRow();
dtrow["楼盘ID"] = row["Newcode"];
dtrow["区县"] = row["district"];
dtrow["商圈"] = row["comerce"];
dtrow["楼盘主名"] = row2["ChiefName"];
dtrow["楼盘别名"] = row2["OtherName"];
dtrow["搜索量"] = row["num"];
dt3.Rows.Add(dtrow);
}
}
}
return dt3;
因为是从两个库 取的不同数据 然后 进行匹配,比较, 得到我想要的数据进行展现 展开
dt3.TableName = dt.TableName;
dt3.Columns.Add("楼盘ID", typeof(string));
dt3.Columns.Add("区县", typeof(string));
dt3.Columns.Add("商圈", typeof(string));
dt3.Columns.Add("楼盘主名", typeof(string));
dt3.Columns.Add("楼盘别名", typeof(string));
dt3.Columns.Add("搜索量", typeof(int));
foreach (DataRow row in dt.Rows)
{
foreach (DataRow row2 in dt2.Rows)
{
if (row["Newcode"].ToString().Trim().Equals(row2["ProjCode"].ToString().Trim()))
{
DataRow dtrow = dt3.NewRow();
dtrow["楼盘ID"] = row["Newcode"];
dtrow["区县"] = row["district"];
dtrow["商圈"] = row["comerce"];
dtrow["楼盘主名"] = row2["ChiefName"];
dtrow["楼盘别名"] = row2["OtherName"];
dtrow["搜索量"] = row["num"];
dt3.Rows.Add(dtrow);
}
}
}
return dt3;
因为是从两个库 取的不同数据 然后 进行匹配,比较, 得到我想要的数据进行展现 展开
3个回答
展开全部
1 public DataTable GetAllDataTable(DataSet ds)
2 {
3 DataTable newDataTable = ds.Tables[0].Clone(); //创建新表 克隆以有表的架构。
4 object[] objArray = new object[newDataTable.Columns.Count]; //定义与表列数相同的对象数组 存放表的一行的值。
5 for (int i = 0; i < ds.Tables.Count; i++)
6 {
7 for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
8 {
9 ds.Tables[i].Rows[j].ItemArray.CopyTo(objArray, 0); //将表的一行的值存放数组中。
10 newDataTable.Rows.Add(objArray); //将数组的值添加到新表中。
11 }
12 }
13 return newDataTable; //返回新表。
14 }
2 {
3 DataTable newDataTable = ds.Tables[0].Clone(); //创建新表 克隆以有表的架构。
4 object[] objArray = new object[newDataTable.Columns.Count]; //定义与表列数相同的对象数组 存放表的一行的值。
5 for (int i = 0; i < ds.Tables.Count; i++)
6 {
7 for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
8 {
9 ds.Tables[i].Rows[j].ItemArray.CopyTo(objArray, 0); //将表的一行的值存放数组中。
10 newDataTable.Rows.Add(objArray); //将数组的值添加到新表中。
11 }
12 }
13 return newDataTable; //返回新表。
14 }
展开全部
dt 里面的一条会对应dt2里面的多条吗?不会的话,我也想知道别的好方法!如果都是对应多条的话,那么可以考虑删除DT2已被提取过的数据,尽量减少dt2的数据量
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
何必要这样呢,dt3的数据为什么不直接从数据库里面select出来,为何在select dt和dt2后再自己判断呢,用sql查好了数据再填充到dt3上不是更好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询